【发布时间】:2014-07-17 04:51:16
【问题描述】:
请在下面找到我写的存储过程:
create or replace
procedure CursorProc_test_vp
(
v_Cur IN OUT types.ref_cursor,
count_var IN OUT number,
var1 IN OUT varchar2,
var2 IN OUT number,
var3 IN OUT number
)
as
begin
select count(*) into count_var from vendor_backup;
open v_Cur for 'select column1,column2 from BACKUP where column1 is not null and column2 is null';
while count_var>0
loop
fetch v_Cur into var1,var2;
SELECT ID into variable3 from BACKUP where column3 = var1;
UPDATE BACKUP SET column2 = var3;
count_var:=count_var-1;
end loop;
close v_cur;
end;
当我运行打开游标的查询时,我得到 120 条记录。 但是当我运行这个存储过程时,它会显示“未找到数据”。
它也没有编译错误。 我在这里遗漏了什么吗?
【问题讨论】:
-
您不会从光标本身获得 ORA-01403。如果它没有找到任何行就不会出错,所以错误来自循环内的
select。