当前位置:  开发笔记 > 编程语言 > 正文

如何将NULL输入参数限制为oracle存储过程

如何解决《如何将NULL输入参数限制为oracle存储过程》经验,为你挑选了2个好方法。

我已经写了一些Oracle存储过程,其中有20多个输入参数,然后需要10个以上的参数,我希望所有的都有一些值,并且不想接受空值,是否有任何我可以在过程定义本身可以限制空输入参数或我是否必须检查每个值并在所需值为空时引发异常?



1> Neil Vass..:

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

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

您可以number_not_null在与存储过程相同的包中定义此类型(和等),或者如果要在许多位置使用它们,则可以在自己的包中定义.然后,您可以声明这些类型的参数.

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

cannot pass NULL to a NOT NULL constrained formal parameter



2> Ed Griebel..:

在PL/SQL中,我不知道如何检查每一个.

如果从外部库调用存储过程,则该库可能具有该功能.这可能不太可能,因为经常需要NULL输入参数.

您可以创建一个辅助PL/SQL过程,如果它为null,则会引发异常以保存冗余代码.然后你可以编写一个perl/python/groovy块来填充你的过程声明并将这些调用转移到你的null检查过程.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有