解决方案 »
- 实现一个字段,只能由字母打头(大小写均可),后面是7位阿拉伯数字,且最后一位不能为0
- Oracle触发器 编译有错
- 一个临时表查询问题:invalid use of an aggegate function
- 一对多这种方式该‘1,2,3’该怎么关联
- 关于:oracle数据库dmp文件导入速度的问题。高分!!!!(在线等待)
- oracle 表添加字段问题。。。。!!!急,,,在线等。。跪求解!!
- 一个想n多天没有解决的问题
- 请问ODP.NET哪里有的下载,在官方下载时,他需要用户名,密码,求助!!!
- 奇怪啊奇怪,为何我取得表占用的block数总是为0
- 求助:在不同用户间imp的问题
- 跪求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;-----------
看看到底执行了几次
我分析应该是数据库环境异常造成的。今天我清除缓冲区后,反复测试,原来写法确实没有问题。
感谢各位,谢谢!!