解决方案 »
- 表或视图不存在
- OCI 批量处理BLOB locator问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 谁可以帮我把下面的程序转化为plsql程序,着急,多谢
- 在Oracle中的时间条件怎么写啊?
- 如何写这个查询语句,效率还高点
- 成就DBA职业生涯
- 一个小问题,高分相送,在线等待!!
- 新手请教一个关于存储过程的问题,急,在线等待!!!!
- 请教:用IMP73,遇到回滚段出错的问题
- 有关EXP的一个简单问题,请各位解惑!!THANKS!!!!
- 跪求oracle8.1.7.0升级到oracle8.1.7.4的升级补丁文件........
- 关于汇总的语句怎么写啊?接触Oracle不太长,就需要开发一个项目。
Result varchar2(100);
begin
dbms_output.put_line('function called.');
return('ffffff');
end abc;
ZZJGDM
FROM T_FR_DL; 这个几条数据?
SET QYZT = abc()
WHERE ZZJGDM = c_row.ZZJGDM;
你这张表“ T_FR” 有多笔数据吧!
SET QYZT = abc()
WHERE ZZJGDM = c_row.ZZJGDM; 有多少笔记录就会调用多少次abc函数,
UPDATE T_FR
SET QYZT = (select abc() from dual)
WHERE ZZJGDM = c_row.ZZJGDM; 这个Oracle机制会把函数返回值当成一个变量去存储,不会再次去查询。所以在写sql的时候要注意写法问题,类似这种写法会浪费很多空间,当数据量达到一定数量时候,你的程序就像牛车一样了,呵呵,分享下我的经验。
IS
CURSOR c_dl IS
SELECT ID,
ZZJGDM
FROM T_FR_DL;
c_row c_dl%ROWTYPE;
intIndex NUMBER;
BEGIN
intIndex :=0;
FOR c_row IN c_dl LOOP
intIndex := intIndex + 1;
dbms_output.put_line('intIndex :'+intIndex );
BEGIN
UPDATE T_FR
SET QYZT = abc()
WHERE ZZJGDM = c_row.ZZJGDM;
END;
END LOOP;
END p_kkk1;-----------
看看到底执行了几次
我分析应该是数据库环境异常造成的。今天我清除缓冲区后,反复测试,原来写法确实没有问题。
感谢各位,谢谢!!