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 todos con algún valor y no quiero aceptar nulo valores para eso, ¿hay algo que pueda declarar en la definación del Procedimiento mismo que pueda restringir el parámetro de entrada nulo o tendré que verificar cada valor y levantar la excepción si el valor requerido es nulo?Cómo restringir los parámetros de entrada NULL en el procedimiento almacenado de Oracle
Respuesta
En PL/SQL no conozco ninguna forma de verificar cada uno.
Si llama al procedimiento almacenado desde una biblioteca externa, esa biblioteca puede tener esa funcionalidad. Probablemente esto no sea probable porque frecuentemente se requieren parámetros de entrada NULL.
Puede realizar un procedimiento auxiliar PL/SQL que, dado un valor, generará una excepción si es nulo para guardar en código redundante. Luego podría escribir un trozo de perl/python/groovy que absorbería su declaración de procedimiento y generaría estas llamadas a su procedimiento de verificación nula.
Sé que esto es una vieja pregunta, pero no hay otra opción (que se describe here):
SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;
Se puede definir este tipo (y number_not_null
, etc) ya sea en el mismo paquete que los procedimientos almacenados, o en su propio paquete si desea usarlos en muchos lugares. A continuación, puede declarar parámetros de estos tipos.
Si NULL
se transfieren como un argumento, obtendrá un mensaje de error muy útil:
cannot pass NULL to a NOT NULL constrained formal parameter
- 1. Cómo restringir NULL como parámetro al procedimiento almacenado SQL Server?
- 2. Procedimiento almacenado NULL Parámetro
- 3. parámetro "Boolean" para el procedimiento almacenado de Oracle
- 4. Procedimiento almacenado de Oracle con parámetros para la cláusula IN
- 5. Llamar al procedimiento almacenado con los parámetros
- 6. ¿Cómo ejecutar un procedimiento almacenado de Oracle?
- 7. C# Oracle procedimiento almacenado parámetro de orden
- 8. cómo imprimir en el procedimiento almacenado de Oracle (para depuración)?
- 9. cómo crear un procedimiento almacenado en Oracle que acepta una matriz de parámetros
- 10. llamada de Oracle procedimiento almacenado Usando createNativeQuery
- 11. ¿Cómo ver el procedimiento almacenado de Oracle utilizando SQLPlus?
- 12. procedimiento almacenado con número variable de parámetros
- 13. Procedimiento almacenado con parámetros "DONDE" opcionales
- 14. Cómo llévese dos valor de retorno de Oracle procedimiento almacenado
- 15. Problema de orden de parámetros al usar el procedimiento almacenado
- 16. Acceder al servicio web desde el procedimiento almacenado de Oracle
- 17. Cómo llamar a un procedimiento almacenado desde otro procedimiento almacenado?
- 18. Llamar a un procedimiento almacenado en Oracle con IN y OUT parámetros
- 19. Obtener los parámetros del procedimiento almacenado por C# o SQL?
- 20. Configuración de classpath para un procedimiento almacenado Java en Oracle
- 21. Uso de parámetros de salida de procedimiento almacenado en C#
- 22. Cómo llamar a un procedimiento almacenado (con parámetros) desde otro procedimiento almacenado sin tabla temporal
- 23. Utilizar UPDATE en procedimiento almacenado con parámetros opcionales
- 24. Cómo pasar los parámetros de valor de la tabla al procedimiento almacenado desde el código .net
- 25. consulta de Oracle para buscar privilegios en un procedimiento almacenado
- 26. Llamar a un procedimiento almacenado de Oracle en Squirrel SQL
- 27. Parámetros de salida de procedimiento almacenado en SQL Server Profiler
- 28. Obtener conjunto de resultados del procedimiento almacenado de Oracle
- 29. ¿Cuál es la sintaxis para definir un procedimiento de Oracle dentro de otro procedimiento almacenado?
- 30. ¿Cómo obtener los parámetros de salida del procedimiento almacenado de MySQL en Rails?
Ditto, no creo que su posible –
Eso es una locura! Acabo de descubrir esto después de pasar de SQL Server donde es tan simple decir "NOT NULL" junto al nombre del parámetro. – Milimetric