【发布时间】:2013-10-17 09:53:30
【问题描述】:
我的要求是我有两个具有两个属性的表。我编写了一个程序,它应该从 table1 获取值(sor_ID)并根据主键在表 2 中更新它。
Table 1
-------
Primary Key | Sor_ID
AAA | 100
BBB | 200
Table 2
-----
Foreign Key | Sor_ID
AAA | NULL
BBB | NULL
create or replace
Procedure UPDDATE_SORID_2
IS
s_id VARCHAR2(256 byte);
CURSOR C1 IS
SELECT A.SOR_INSTRMNT_ID
FROM TEST_TABLE B,TEMP_SOR_ID A
where A.INSTRMNT_KEY=B.INSTRMNT_KEY;
BEGIN
open c1;
loop
fetch c1 into s_id;
update TEST_TABLE set SOR_INSTRMNT_ID=S_ID;
commit;
end LOOP;
close c1;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,'An error was encountered - '
||SQLCODE||' -ERROR'||SQLERRM);
end;
此过程即使在运行数小时后也不会返回任何更新。请推荐
【问题讨论】:
-
您的 WHEN OTHERS 异常处理似乎是多余的。只需引发异常即可。
标签: sql debugging stored-procedures plsql oracle11g