如果在调用任何子过程时发生任何异常,我想停止plsql过程。
以下示例,
如果first_sub_proc给出任何异常,我想停止整个过程。我用过" return"声明在这里。但是没有用。总是,如果在first_sub_proc上发生任何事情,则执行first_sub_procdure的异常块。因此,它将返回main函数并开始处理second_sub_proc。
有什么建议吗?
create or replace
package body testing_pk as
procedure first_sub_proc is
begin
dbms_output.put_line('Entering the first sub');
execute immediate 'truncate table not_present';
Exception when others then
dbms_output.put_line('first sub procedure exception ');
-- *****Need to stop the entire process here ****
end;
procedure second_proc is
begin
dbms_output.put_line('Entering the Second sub');
execute immediate 'truncate table not_present';
Exception when others then
dbms_output.put_line('second sub procedure exception ');
end;
procedure main_proc is
begin
dbms_output.put_line('Entering main ');
first_sub_proc();
second_proc();
Exception when others then
dbms_output.put_line('Main procedure exception ');
end;
答案 0 :(得分:0)
而不是return
尝试raise
或raise_application_error(-20800, 'The dreaded thing has happened');
。
当然,程序应该停止的具体内容有点未定义。