ORACLE
huxingz
这个作者很懒,什么都没留下…
展开
-
ORACLE 中的动态表名的SQL文
DECLAREa NUMBER;v_table_name varchar2(30);BEGINv_table_name :=xxxx;EXECUTE IMMEDIATE SELECT COUNT(*) from ||v_table_nameINTO a;DBMS_OUTPUT.put_line (a);END;表名是可以变换的,根据情况而变换DECLARETABLENAME原创 2005-06-22 15:29:00 · 2970 阅读 · 0 评论 -
SQL%ROWCOUNT 和 NO_DATA_FOUND
最近写PROCEDURES 的时候.有一种情况虽然自己知道,但是往往容易忽视掉.就是在对一张表进行UPDATE处理的时候.要求做以下处理:表中没有符合WHERE条件的数据时候.对该表进行INSERT操作.有就UPDATE,错误的时候打出ERROR信息.在一般情况下.首先想到的是在EXCEPTION里面写WHEN NO_DATA_FOUND THEN.乍看上去没有问题,但是实际上是没有数据的时候.是原创 2005-08-03 14:59:00 · 1127 阅读 · 0 评论 -
INSERT , UPDATE 和 DUP_VAL_ON_INDEX
在写PROCEDURES的时候,INSERT和UPDATE是经常碰到的处理.有时候会要求对表进行INSERT的时候,如果里面已经有了与该条值的KEY值相同的数据,则对该条数据进行UPDATE处理.方法是在EXCEPTION 里面加WHEN DUP_VAL_ON_INDEX THEN来进行判断...这时候需要注意的是,如果直接在那个下面进行UPDATE处理的时候,虽然编译是可以通过的.逻辑也没有任何原创 2005-08-03 15:19:00 · 5086 阅读 · 2 评论 -
系统日期所在周
用select TRUNC(SYSDATE, D) + 1 from dual 可以求出系统日期所在周的周一的日期,用这个方法同样可以求出你想要的任何时一天的日期.select to_char(sysdate - 1,d) from dual 这个方法是求出当前日期是星期几.原创 2005-08-03 15:28:00 · 533 阅读 · 0 评论 -
SELECT INTO中的BULK
一般情况下,SELECT INTO都一次只能插一行数据(一行可能包含多个变量的值)但是当那个变量是数组的时候.情况就不一样了.在这种情况下,使用了平时不使用的方法比如说BULK,GROUP BY.等方法如下:SELECT AAABULK COLLECT INTO A(数组变量)FROM TABELWHERE …GROUP BY …原创 2005-08-05 10:04:00 · 726 阅读 · 0 评论 -
ORACLE中CURSOR跨用户查询错误(ORA-00942)
这几天写的一个任务里面碰到了一个问题.在定义CURSOR里面所用到的表是SYS用户里面的,而我是用A用户登陆,这个任务必须是在A下面完成,写完后编译的时候,会报错,ORA-00942,相关的几个错误信息也就是表或视图不存在,CURSOR定义不完全之类的.其实表是存在的,CURSOR定义也不存在不完全.很奇怪.我就是手写一段也是可以有结果的,SELECT * FROM dba_indexes是可以有原创 2005-06-16 11:00:00 · 1153 阅读 · 0 评论 -
ORACLE 上的连接
联接操作 说明 CROSS JOIN原创 2006-11-14 20:08:00 · 644 阅读 · 0 评论