oracle - 如何限制oracle存储过程中的NULL输入参数

标签 oracle stored-procedures

我已经编写了一些 Oracle 存储过程,其中有超过 20 个输入参数,并且需要超过 10 个参数,我希望所有参数都有一些值,并且不想接受空值,有什么我可以做的吗在过程定义本身中声明,它可以限制空输入参数,或者我是否必须检查每个值并在所需值为空时引发异常?

最佳答案

我知道这是一个老问题,但还有另一个选择(描述为 here ):

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

您可以在与存储过程相同的包中定义此类型(以及 number_not_null 等),或者如果您想在很多地方使用它们,也可以在它们自己的包中定义它们。然后您可以声明这些类型的参数。

如果 NULL 作为参数传递,您将收到一条非常有用的错误消息:

cannot pass NULL to a NOT NULL constrained formal parameter

关于oracle - 如何限制oracle存储过程中的NULL输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/116525/

相关文章:

mysql - Mysql存储过程1064错误

MySQL 过程无法识别参数

asp.net-mvc - 如何在 mvc 中的 Homecontroller 内根据条件更改提交按钮文本?

sql - 即使使用并行(8)提示,具有百万条记录的表中的计数(1)也很慢

oracle - DART与ORACLE DART pub一起使用时的 future 功能

oracle - 使用 VPN 连接到 Oracle

Mysql CASE NOT FOUND 用于存储过程上的 CASE STATEMENT

sql - 无法在 SQL Developer 导入向导中从 Excel 读取时间戳

python - 哪个 Python API 连接到 Oracle

MySQL存储过程回滚的原因