随笔分类 -  Oracle

摘要:--行列转换 行转列DROP TABLE t_change_lc;CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);INSERT INTO t_change_lc SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM 0) tORDER BY 1, 2;-- 实现一条记录根据条件多表插入DROP TABLE t_ia_src;CREATE TABLE 阅读全文
posted @ 2007-07-05 12:53 快乐就好 阅读(3002) 评论(0) 推荐(1) 编辑
摘要:oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必... 阅读全文
posted @ 2007-07-05 11:08 快乐就好 阅读(117553) 评论(16) 推荐(13) 编辑
摘要:(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件.. 阅读全文
posted @ 2007-06-26 10:04 快乐就好 阅读(1241) 评论(0) 推荐(1) 编辑
摘要:[Oracle]高效的SQL语句之分析函数(一)--sum() 实际应用中我们可以通过sum()统计出组中的总计或者是累加值,具体示例如下:1.创建演示表createtableempasselect*fromscott.emp;altertableempaddconstraintemp_pkprimarykey(empno);createtabledeptasselect*fromscott.dept;altertabledeptaddconstraintdept_pkprimarykey(deptno);2. sum()语句如下:selectdeptno,ename,sal, --按照部门. 阅读全文
posted @ 2007-06-26 09:52 快乐就好 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:这三个分析函数都可以在各个分组内从1开始排序。ROW_NUMBER()是没有重复值的,可以利用它实现分页显示。DENSE_RANK()是连续排序,有两个第二名时仍然跟着第三名。RANK()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)。SELECT * FROM ( SELECT deptno, ename, sal, ROW_NUMBER() OVER ( PARTITION BY deptno ORDER BY sal DESC ) Top3 FROM emp)WHERE Top3 <= 3/ DEPTNO ENAME SAL TOP3---------- ---- 阅读全文
posted @ 2007-06-26 09:37 快乐就好 阅读(717) 评论(0) 推荐(0) 编辑
摘要:查找子类select org_id,org_pid,org_namefrom organizationstart with org_id='Lvxin' connect by prior org_id=org_pid查找父类select org_id,org_pid,org_namefrom organizationstart with org_id='Lvxin' connect by prior org_pid=org_id 阅读全文
posted @ 2007-06-25 10:38 快乐就好 阅读(781) 评论(0) 推荐(0) 编辑
摘要:oracle学习--循环语句 loop循环:create or replace procedure pro_test_loop isi number;begini:=0;loop i:=i+1; dbms_output.put_line(i); if i>5 then exit; end if;end loop;end pro_test_loop;while循环:create or replace procedure pro_test_while isi number;begini:=0;while i<5 loop i:=i+1; dbms_output.put_line(i); 阅读全文
posted @ 2007-06-22 14:10 快乐就好 阅读(36449) 评论(1) 推荐(1) 编辑
摘要:SQLServer和Oracle的常用函数对比---------数学函数1.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) value O:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc 阅读全文
posted @ 2007-06-20 13:19 快乐就好 阅读(662) 评论(0) 推荐(0) 编辑
摘要:单行字符串函数 单行字符串函数用于操作字符串数据,他们大多数有一个或多个参数,其中绝大多数返回字符串 ascii() c1是一字符串,返回c1第一个字母的ascii码,他的逆函数是chr()select ascii(''a'') big_a,ascii(''z'') big_z from empbig_a big_z65 122 chr(<i>)[nchar_cs] i是一个数字,函数返回十进制表示的字符select chr(65),chr(122),chr(223) from empchr65 chr122 chr223a z 阅读全文
posted @ 2007-06-20 13:17 快乐就好 阅读(394) 评论(0) 推荐(0) 编辑
摘要:1、给表加注释COMMENT ON TABLE land.landsellmend IS '补办出让';2、查看表的COMMENTSELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='LANDSELLMEND';3、给字段加注释comment on column document.doc.bid is '批号';4、查看字段的COMMENT:SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME='LANDSELLMEND';5、查看字段的详细 阅读全文
posted @ 2007-05-22 10:44 快乐就好 阅读(2220) 评论(0) 推荐(0) 编辑
摘要:http://download.chinaitlab.com/special/oracleebook.htm 阅读全文
posted @ 2007-05-18 18:14 快乐就好 阅读(1619) 评论(0) 推荐(0) 编辑