gpt4 book ai didi

oracle - oracle存储过程中找不到数据错误

转载 作者:行者123 更新时间:2023-12-02 04:28:53 25 4
gpt4 key购买 nike

请在下面找到我编写的存储过程:

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 条记录。但是当我运行这个存储过程时,它显示“未找到数据”。

它也没有编译错误。我在这里遗漏了什么吗?

最佳答案

在不知道要传递的数据以及表中包含哪些数据的情况下,尝试在过程背后添加上下文是极其困难的。

我会导致 NO_DATA_FOUND 异常的唯一其他 SQL 是:

"SELECT ID into variable3 from BACKUP where column3 = var1;"

在您的过程中使用 Begin Exception End 子句将其括起来并尝试调试:

Begin
SELECT ID into variable3 from BACKUP where column3 = var1;
Exception
When NO_DATA_FOUND Then
DBMS_OUTPUT.PUT_LINE('ERROR: '||sqlerrm);
Raise; -- To ensure if this is the error, you will set get no_data_found raised...
End;

关于oracle - oracle存储过程中找不到数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com