Manejo de excepciones en Oracle PL/SQL para parámetros de entrada (argumento incorrecto, es decir, valor no numérico para número)
Tengo un procedimiento almacenado con un parámetro de entrada de tipo número.
CREATE OR REPLACE PROCEDURE my_procedure (p_x number)
AS
Incluí un código de manejo de excepciones como se muestra a continuación, pero no maneja lo siguiente:
execute my_procedure ('sads')
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('SQLERRM: ' || SQLERRM);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SQLERRM: ' || SQLERRM);
¿Hay alguna forma de cambiar la excepción para argumentos incorrectos?
davy.ai
Sí, hay una forma de cambiar la excepción para argumentos incorrectos. Puede agregar otro controlador de excepciones específicamente para el caso en que el parámetro de entrada no sea de tipo número.
Por ejemplo:
El procedimiento
my_wrapper_procedure
verifica si el parámetro de entrada es un número válido utilizando expresiones regulares. Si no es un número válido, genera un error de aplicación con un mensaje personalizado. Si es un número válido, llama amy_procedure
.Puede personalizar el mensaje de error y el código de error según sea necesario.