
Oracle
凯文司机
乐观,开朗,希望多交些朋友!
展开
-
Oracle AS VS. IS
创建存储过程和方法时用的AS和IS究竟有没有区别? 大家普遍认可的观点是 没有任何区别。 另外,以下观点仅供参考,有待考证: 1.AS后面的是个可以独立的语句,IS后面的不是。 2.没有差别,可能最早是AS,后来了保持原有部分保留了AS,增加了I原创 2011-07-11 14:10:00 · 359 阅读 · 0 评论 -
ORACLE空值漫谈2
here salename sal comm abs(comm)---------- --------- --------- ---------smith 800ward 1250 500 500martin 1250 1400 1400adams 110转载 2011-08-01 13:14:00 · 588 阅读 · 0 评论 -
Oracle WHERE条件执行顺序
Oracle WHERE条件执行顺序 1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.例如:(低效)SELECT … FROM EMP E转载 2011-08-02 08:02:42 · 5851 阅读 · 0 评论 -
非黑即白,不是永远都是对的!
begin DBMS_OUTPUT.PUT_LINE('Result:'); IF '' = 'ALL' THEN DBMS_OUTPUT.PUT_LINE('Equal'); END IF; IF '' !=原创 2011-08-02 14:53:39 · 1063 阅读 · 3 评论 -
oracle 使用leading, use_nl, rownum调优
1、使用leading和use_nl来设置表的查询顺序,来加快查询速度,一般把小表设为第一个表。/*+LEADING(TABLE)*/ 将指定的表作为连接次序中的首表./*+USE_NL(TABLE)*/ 将指定表与嵌套的连接的行源进行连接,并把指定表作为内部转载 2011-08-10 16:02:00 · 697 阅读 · 0 评论 -
Oracle的SQL语法提示
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS转载 2011-08-10 15:58:51 · 1406 阅读 · 0 评论 -
PL/SQL之核心学习一
PL/SQL块结构:1. 匿名块 [DECLARE] BEGIN -- statements [EXCEPTION] END;2. 过程 PROCEDURE name [(参数列表)]原创 2011-10-11 13:51:39 · 582 阅读 · 0 评论 -
Oracle Exceptions
BEGIN SELECT ... ... EXCEPTION WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors 2、异常的分类 有两种类型的异常,一种为转载 2011-10-11 14:41:41 · 726 阅读 · 0 评论 -
oracle 使用leading, use_nl, rownum调优
1、使用leading和use_nl来设置表的查询顺序,来加快查询速度,一般把小表设为第一个表。/*+LEADING(TABLE)*/ 将指定的表作为连接次序中的首表./*+USE_NL(TABLE)*/ 将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.成本计算方法:设小表100行,大表100000行。两表均有索引:如果小表在内,大表在外(驱动表)转载 2011-12-20 10:03:15 · 830 阅读 · 0 评论 -
Oracle group by及其若干相关函数的一些说明
Oracle group by及其若干相关函数的一些说明http://blog.csdn.net/roland_wg/archive/2009/07/03/4319323.aspxOracle的group by除了基本用法以外,还有3种扩展用法,分别是rollup、cube、grouping sets。假设有一个表test,有A、B、C、D、E5列。1) 如果使用group by转载 2011-12-19 14:38:04 · 4003 阅读 · 0 评论 -
(综合整理)Oracle优化
在嵌套循环连接中,Oracle从第一个行源中读取第一行,然后和第二个行源中的数据进行对比。所有匹配的记录放在结果集中,然后Oracle将读取第一个行源中的下一行。按这种方式直至第一个数据源中的所在行都经过处理。第一个记录源通常称为外部表,或者驱动表,相应的第二个行源称为内部表。使用嵌套循环连接是一种从连接结果中提取第一批记录的最快速的方法。在驱动行源表(就是您正在查找的记录)较小、或者内部行源原创 2011-12-20 09:59:03 · 595 阅读 · 0 评论 -
oracle replace和translate函数详解
replace:字符串级别的代替 如:SELECT REPLACE('acdd','cd','ef') FROM dual; →aefd translate:字符级别的代替 如:SELECT TRANSLATE('acdd','cd','ef') FROM dual; →aeff 分别详解: replace: 语法:REPLACE ( char , search转载 2011-12-20 14:14:11 · 842 阅读 · 0 评论 -
oracle如何判断一个字符串是否为数字或日期
/*判断字符串是否是日期格式*/ CREATE OR REPLACE FUNCTION is_date(parameter VARCHAR2) RETURN NUMBER IS val DATE;BEGIN val := TO_DATE(NVL(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss'); RETURN 1;EXCEPTION转载 2011-12-20 14:25:02 · 3432 阅读 · 0 评论 -
求助:Oracle 9i & 10g 的差别
如下SQL:select a,a from ( select trunc(dbms_random.value(0,36)) a from dual);在Oracle 9i 和10g中执行结果不同,10g中的结果才是期望的结果。9i中2次输出的A的值竟然不同,10g中每次都是完全相同的。 但下面的SQL,只比上面的多了个where rownum select a,a原创 2011-12-14 15:02:11 · 728 阅读 · 0 评论 -
实例代码讲解Java连接Oracle数据库的各种方法
java与oracle的接口: 在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。 Methods for Using Java in ORACLE 大家都知道JAVA在跨平台开发与INTERNET开发中已转载 2012-01-19 15:33:42 · 704 阅读 · 0 评论 -
JDBC小结
JDBC: Java Data Base Connection(java数据库连接)一套标准,让针对各类数据库进行编程的操作都能按统一的方式进行开发。连接过程:Application -> JDBC -> Driver -> DBJava代码调用JDBC library, JDBC加载Driver,Driver与DB交互。JDBC编程:1.Java.sql.Driver负责转载 2012-01-19 16:52:19 · 620 阅读 · 0 评论 -
Oracle的列操作(增加列,修改列,删除列),包括操作多列
增加一列: alter table emp4 add test varchar2(10);修改一列: alter table emp4 modify test varchar2(20);删除一列:alter table emp4 drop column test; 这里要注意几个地方,首先,增加和修改列是不需要加关键字COLUMN,否则会报错ora-0090转载 2012-01-06 10:40:44 · 1202 阅读 · 0 评论 -
Oracle 常用SQL技巧收藏
1. SELECT子句中避免使用 “*” 当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将“*” 依次转换成所有的列名, 这个工作是通过查转载 2011-08-01 13:45:00 · 557 阅读 · 1 评论 -
ORACLE空值漫谈1
在数据库中,空值用来表示实际值未知或无意义的情况。在一个表中,如果一行中的某列没有值,那么就称它为空值(null)。任何数据类型的列,只要没有使用非空(not null)或主键(primary key)完整性限制,都可以出现空值。在实际应用中,如果忽略空值的存在,将会造成造成不必转载 2011-08-01 13:13:16 · 1301 阅读 · 0 评论 -
CURSOR使用
带参数的游标,和存储过程和函数相似,可以将参数传递给游标并在查询中使用。多用于在某种条件下打开游标的情况。 与存储过程不同的是,游标只能接受传递的值,而不能返回值。参数只定义数据类型,没有大小。 例子如下:DECLARE CURSOR c_dept IS S原创 2011-07-12 08:16:03 · 497 阅读 · 0 评论 -
[精华] Oracle 游标使用大全
我们将讨论各种用于访问ORACLE数据库的DDL和TCL语句。 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。SELECT转载 2011-07-12 08:19:14 · 630 阅读 · 0 评论 -
再谈Oracle like优化
查询%xx%的记录1.使用instrselect count(*) from table t where instr(t.column,'xx')> 0这种查询效果很好,速度很快 查询%xx的记录select count(c.c_ply_no) as COUNT from Po转载 2011-07-26 19:48:55 · 1199 阅读 · 0 评论 -
教你快速掌握Oracle数据库中的like优化-性能调优
1.尽量不要使用 like '%..%' 2. 对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index 3. 对于 like '%...' 的 (不以 % 结尾),可以利用reverse + functio转载 2011-07-26 19:35:09 · 1023 阅读 · 1 评论 -
索引的使用要注意几个事项
关于索引的使用要注意几个事项 :1 首先数据量小的表不需要建立索引,因为小的表即使建立索引也不会有大的用处,还会增加额外的索引开销2 不经常引用的列不要建立索引,因为不常用,即使建立了索引也没有多大意义3 经常频繁更新的列不要建立索引,因为肯定会影响插入或更新的效率4 索引并不是转载 2011-07-26 21:34:21 · 1672 阅读 · 1 评论 -
Oracle SQL的优化
想起来上次面试的时候那个面试官问我“你对优化方面了解多少”“ORACLE优化还是SQL优化”“SQL优化”“这个……不知道从何说起”“呵呵,那我问你问题好了,问问就知道你大概什么水平了”“呵呵,好吧”……结果好像不太理想,虽然最终还是拿到OFFER了,呵呵。今天看到篇SQL优化的转载 2011-07-18 21:32:25 · 458 阅读 · 0 评论 -
ORACLE中like与instr性能大比拼
例如: t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果: SQL> set timing on SQL> select coun转载 2011-07-26 16:16:52 · 10202 阅读 · 0 评论 -
实际环境中操作,体验出一SQL优化方法:
今天在客户的客户端实际环境中查核数据时发现一SQL优化方法:表a 中有上百万条记录,且不断有新记录插入。现在要汇总此表中小于某个时间的记录条数,SQL两种写法如下:写法一:select count(*)from a where date 写法二:select count(*)fr转载 2011-07-18 20:53:30 · 673 阅读 · 0 评论 -
SQL 中 where 1=1 和 1=0的 作用
where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1'b',其目的就只有一个,where的条件为永真,得到的结果就是未加约转载 2011-07-18 21:26:22 · 883 阅读 · 0 评论 -
DBMS_SQL
DBMS_SQL封装过程中的主要函数:1、OPEN_CURSOR:返回新游标的ID值2、PARSE:解析要执行的语句3、BIND_VARIABLE:将给定的数量与特定的变量相连接4、DEFINE_COLOUMN:定义字段变量,其值对应于指定游标中某个位置元素的值 (仅用于SELE转载 2011-07-28 11:33:27 · 970 阅读 · 0 评论 -
关于dbms_sql的使用
PL/SQL中使用动态SQL编程在PL/SQL程序设计过程中,会遇到很多必须使用动态sql的地方,oracle系统所提供的DMBS_SQL包可以帮助你解决问题。(一)介绍DBMS_SQL系统包提供了很多函数及过程,现在简要阐述其中使用频率较高的几种:function open_c转载 2011-07-28 11:37:47 · 766 阅读 · 0 评论 -
SQL基本函数学习笔记(order by decode)
这是我很久以前刚开始学习SQL时作的笔记,今天翻资料的时候被我翻了出来,觉得放在那里以后遗失掉了也是可惜,不如放到博客上,以后也可以看看,还可以帮助一些刚开始学习SQL的朋友入个门。不过都是按我自己的掌握程度来记的,估计也不太适合别人,就随便看看吧。 一、to_char函数转载 2011-07-18 16:06:45 · 12857 阅读 · 1 评论 -
Oracle 语句优化30个规则(上)
. 选用适合的Oracle优化器 Oracle的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,CO转载 2011-07-18 21:27:52 · 528 阅读 · 0 评论 -
Oracle 语句优化30个规则(下)
16. 通过内部函数提高SQL效率。 SELECT H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC,COUNT(*) FROM HISTORY_TYPE T,EMP E,EMP_HISTORY H WHERE H.EMPNO =转载 2011-07-18 21:28:46 · 582 阅读 · 4 评论 -
SQL优化
提示(Hint) USE/*+ ALL_ROWS */ 选择cost-based optimizer里总响应时间最短的计划(DW) /*+ FIRST_ROWS */ 选择cost-based optimizer里最快得出第一行的计划(OLTP)--Nested Loop Join/*+ RULE */ 以rule-based optimization制作计划/*+ FU转载 2013-05-09 16:06:04 · 1169 阅读 · 0 评论