En un procedimiento, quiero hacer unidad lógica 1, no importa si no funciona, ejecute unidad lógica 2Try Catch Como control de excepciones En PL/SQL
esto parece un escenario típico try-catch. pero ¿cómo puedo hacerlo en 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;
como se puede ver el segundo bloque de excepción causa del problema.
Casi exacto a mi respuesta. Eliminaré el mío. –
lo siento, debería haberlo dejado más claro. Ejecute la lógica 1, no importa si falla, ejecute la lógica 2 –
eche un vistazo a la segunda aproximación –