在一个过程中,我想要做的逻辑单元1,如果失败不要紧,执行逻辑单元2尝试捕捉象异常处理在PL/SQL
这似乎是一个典型的try-catch场景。但我怎么能在pl/sql中做到这一点?
create or replace
PACKAGE BUILD_PKG
AS
PROCEDURE reset_seq_and_truncate_tbl(
p_seq_name IN VARCHAR2,
p_table_name IN VARCHAR2);
END BUILD_PKG;
/
create or replace
PACKAGE BODY BUILD_PKG
AS
BEGIN
PROCEDURE reset_seq_and_truncate_tbl(
p_seq_name IN VARCHAR2,
p_table_name IN VARCHAR2)
IS
l_val NUMBER;
BEGIN
BEGIN
EXECUTE immediate 'truncate table ' || p_table_name;
EXCEPTION
WHEN OTHERS
THEN dbms_output.put_line(SQLCODE);
END;
BEGIN
EXECUTE immediate 'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
EXCEPTION
WHEN OTHERS
THEN dbms_output.put_line(SQLCODE);
END;
END reset_seq_and_truncate_tbl;
END BUILD_PKG;
正如您所看到的第二个异常块导致问题。
几乎完全符合我的答案。我会删除我的。 –
对不起,我应该让它更清楚。执行逻辑1,无所谓如果失败,执行逻辑2 –
看看第二种方法 –