我已经写过一些Oracle存储过程,这些过程中有20多个输入参数,然后有更多的参数需要10个参数,我希望所有的都有一些值,并且不想接受null价值观,是否有任何我可以声明在过程定义本身,它可以限制空输入参数或我将不得不检查每个值,并提出异常,如果所需的值为空?如何将NULL输入参数限制在oracle存储过程中
9
A
回答
5
在PL/SQL中我不知道如何检查每一个。
如果您从外部库调用存储过程,该库可能具有该功能。这可能不太可能,因为经常需要NULL输入参数。
您可以创建一个帮助程序PL/SQL过程,如果值为零,如果它为空以保存冗余代码,则会引发异常。然后,您可以编写一大堆perl/python/groovy,它会吸引您的过程声明,并将这些调用发送给您的空检查过程。
9
我知道这是一个老问题,但还有另一种选择(描述here):
SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;
您可以定义此类型(和number_not_null
等),无论是在同一个包内的存储过程,或者如果你想在很多地方使用它们,可以使用它们自己的包装。然后你可以声明这些类型的参数。
如果NULL
被作为参数传递,你会得到一个非常有用的错误消息:
cannot pass NULL to a NOT NULL constrained formal parameter
相关问题
- 1. Oracle存储过程的输入参数
- 2. 如何限制在存储过程中输入的数据?
- 3. 存储过程NULL参数
- 4. Oracle嵌套表作为Mybatis存储过程的输入参数
- 5. 使用oracle存储过程检查输入参数的空值
- 6. mysql存储过程输入参数值
- 7. 将“null”(字面上)插入存储过程参数
- 8. 如何忽略空参数在存储过程中的Oracle
- 9. 存储过程的参数 - 有时NULL
- 10. 如何将具有参数的SQL Server存储过程转换为具有参数的Oracle存储过程?
- 11. 在SQL Server中限制存储过程参数值
- 12. 如何在存储过程中传递null参数 - 参数是uniqueidentifier
- 13. Oracle 11g存储过程参数问题
- 14. 获得Oracle存储过程的参数
- 15. Oracle存储过程与参数问题
- 16. Oracle存储过程结构化参数
- 17. C#Oracle存储过程参数顺序
- 18. Oracle存储过程OUT参数
- 19. 限制选定的行数MySQL中的存储过程参数
- 20. 使用输入和输出参数从PHP调用Oracle存储过程
- 21. 如何从存储过程(SQL Server 2005)捕获输入参数?
- 22. 如何在oracle有out参数时调用存储过程?
- 23. 确定存储过程中的输入和输出参数
- 24. 插入存储过程输出值作为在Oracle数据库
- 25. 通输入参数作为列名在存储过程中
- 26. 在存储过程中正确使用输入参数
- 27. 输入参数在查询存储过程中传递
- 28. 如何进行多输出参数在存储过程中
- 29. 将存储过程输出参数转储到DataGridView行中
- 30. 存储过程的输出参数返回null
同上,我不认为它可能 – 2008-09-22 19:07:33