- 博客(8)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 ORACLE 一条sql语句生成前60年的年份
select trunc(sysdate-rownum*365,'YYYY') from dual connect by rownumconnect by 后面不接连接条件时,数据可连接自身,无限下去,rownum控制它的行数,也可以写成select trunc(sysdate-rownum*365,'YYYY') from dual connect by levelcon
2012-05-21 10:47:30 851 1
原创 partition by 的用法
lag(t.id, 5) over(partition by al_group order by t.id) 这句话的意思就是, 按照 al_group 这个列进行分组,并在分组内部用 id排序,lag函数的意思是把每个分组内部的前5行往后挪,超出部分不显示
2012-05-20 15:50:18 722
原创 oracle 将多行数据放在同一行
select substr(sys_connect_by_path(t1.agency, ''','''),3)||'''' from (select t.agency, rownum as row_id,rownum-1 as p_id from foreign_agency t) t1 where t1.row_id=1 /*递归的起点*/ start with t1
2012-05-20 15:15:33 1094
原创 oracle inner join 的效率
我做了个试验,比如有如下语句 select * from table1 t1 inner join table2 t2 on t1.XX=t2.XX inner join table3 t3 on t2.XX =t3.XX ,看他的执行计划,XX这个列是有索引的,但他的第一步是对table3进行全表扫描,然后再用索引去扫描table2, 也就是说,inner join的执行顺序是从后往
2012-05-16 10:38:30 3135
原创 oracle select sum(t.colunm),sum(t.colunm)/100 的执行次数
如果一个比较耗时的 函数 如 sum(t.colunm) 在一个sql语句中多次出现,不用担心, 它之后执行一次,已验证!
2012-05-13 11:24:06 866
原创 oracle insert into A select from B 的一些心得
今天做了一个 insert into A select * from B 的操作,发现了很多问题,B表里的数据有几千万,这样就直接导致 用于回滚的表空间不够,那个表空间是默认跟oracle安装目录在一起的,如果那个磁盘小的话,就卡死了,而且,做这种插入之前,需要做全表扫描,再插入,几千万的数据,光是扫描就需要很长时间,推荐分段做,另外,触发器里面不能加commit。还有,用语句 alter
2012-05-11 13:43:47 6204
原创 select 判断数据是否存在,若存在,将值赋给变量
declare temp varchar2(1000);begin select nvl((select t.data from err_traffic t where rownum = 1), '0') into temp from dual; dbms_output.put_line(temp);end;这样免去了 先用sel
2012-05-03 14:02:09 1411
原创 oracle update 语句无效
我写了个update语句 update ao_msg_suc t set t.suc_cnt = suc_cnt, t.fail_cnt = fail_cnt + null_cnt, t.suc_percent = suc_percent, t.mes_fl
2012-05-02 11:24:00 1756
accept在while(true)里面变成了非阻塞的
2014-12-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人