Trong một thủ tục, tôi muốn làm đơn vị logic 1, không quan trọng nếu nó không thành công, thực hiện đơn vị luận lý 2Try Catch Giống như Xử lý ngoại lệ trong PL/SQL
này có vẻ giống như một kịch bản try-catch điển hình. nhưng làm thế nào tôi có thể làm điều đó trong 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;
vì bạn có thể thấy khối Ngoại lệ thứ hai gây ra sự cố.
Gần như chính xác câu trả lời của tôi. tôi sẽ xóa của tôi. –
xin lỗi, tôi nên làm điều đó rõ ràng hơn. thực hiện logic 1, không quan trọng nếu nó không thành công, thực hiện logic 2 –
hãy xem cách tiếp cận thứ hai –