我正在尝试从存储过程返回数字列表。发生异常时,我的存储过程会在for循环中停止。我已经添加了异常子句,并且控制正在异常子句中继续循环,但仍然没有运气。
异常发生时如何继续循环?感谢。
CREATE OR REPLACE PROCEDURE getNumber(l_list IN CUSTOMLIST, l_output OUT NUMLIST)
IS
n_num varchar2(5);
BEGIN
l_output := NUMLIST();
FOR i IN l_list.FIRST .. l_list.LAST LOOP
l_output.EXTEND(l_list.LAST);
BEGIN
SELECT NUM into n_num
FROM sometable WHERE some condition;
l_output(i) := n_num;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('TRUE');
CONTINUE;
END;
END LOOP;
END;
答案 0 :(得分:0)
也许你应该处理其他例外。 尝试添加
WHEN OTHERS THEN
[statements]
答案 1 :(得分:0)
当我重新启动SQL开发人员时,我发布的代码正在运行。当我复制粘贴EXCEPTION子句时,SQL开发人员级别出了点问题。但是当我输入EXCEPTION子句时,它开始显示为no_data_found选项,并且我选择了一个并且它有效。