【发布时间】:2014-02-14 18:23:19
【问题描述】:
我想知道,发生错误时如何退出执行。在 Microsoft SQL Server 中有一个 RETURN 子句,它可以完成这项工作。但我想知道 Oracle 中的类似功能。我正在使用 Oracle Sql Developer。这是我正在使用的脚本:
第一个块由于唯一键冲突而引发错误,即使它引发错误,执行也会转到下一个块并执行插入语句。我想在第一个代码块本身结束执行或退出。 请帮我写代码。
第一个匿名 PL/SQL 块:
set serveroutput on;
BEGIN
insert into test values(1);
insert into test values(1);
COMMIT;
dbms_output.put_line('PRINT SOMETHING 1');
EXCEPTION
WHEN OTHERS THEN
if sqlcode <> 0
then
dbms_output.put_line(SQLCODE || ' ' || SQLERRM);
RAISE;
end if;
return;
END;
/
第二个匿名 PL/SQL 块:
set serveroutput on;
BEGIN
insert into test values(6);
COMMIT;
dbms_output.put_line('PRINT SOMETHING');
EXCEPTION
WHEN OTHERS THEN
if sqlcode <> 0
then
dbms_output.put_line(SQLCODE || ' ' || SQLERRM);
RAISE;
end if;
return;
END;
/
【问题讨论】: