Cómo restringir los parámetros de entrada NULL en el procedimiento almacenado de Oracle

StackOverflow https://stackoverflow.com/questions/116525

  •  02-07-2019
  •  | 
  •  

Pregunta

He escrito algunos procedimientos almacenados de Oracle en estos, hay más de 20 parámetros de entrada y de ellos se requieren más de 10 parámetros, quiero que todos tengan algún valor y no quiero aceptar valores nulos para eso. ¿Hay algo que pueda declarar en el Definición del procedimiento en sí que puede restringir el parámetro de entrada nulo o ¿Tendré que verificar cada valor y generar la excepción si el valor requerido es nulo?

¿Fue útil?

Solución

En PL/SQL no conozco una manera de comprobar cada uno de ellos.

Si llama al procedimiento almacenado desde una biblioteca externa, esa biblioteca podría tener esa funcionalidad.Probablemente esto no sea probable porque con frecuencia se requieren parámetros de entrada NULL.

Podría crear un procedimiento PL/SQL auxiliar que, dado un valor, genere una excepción si es nulo para guardar código redundante.Luego podría escribir una porción de perl/python/groovy que absorbería la declaración de su procedimiento y generaría estas llamadas a su procedimiento de verificación nula.

Otros consejos

Sé que esta es una vieja pregunta, pero hay otra opción (descrita aquí):

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

Puede definir este tipo (y number_not_null, etc) ya sea en el mismo paquete que sus procedimientos almacenados o en su propio paquete si desea usarlos en muchos lugares.Luego puede declarar parámetros de estos tipos.

Si NULL se pasa como argumento, obtendrá un mensaje de error muy útil:

cannot pass NULL to a NOT NULL constrained formal parameter
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top