我已经编写了一些 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/