oracle plsql参数默认为null

时间:2016-10-24 19:54:49

标签: plsql oracle11g plsqldeveloper

我必须在列中使用参数,并且列不可为空。但参数默认为null。我该如何控制空值。 因为当我没有给出价值时,它正在考虑将值视为null并且我的脚本失败了。非常感谢你的帮助 例子 -

  

create procedure test1(p_1 number default null)   如   开始   从table1中选择col1,col2   其中col1 = p_1 - 默认为NULL;
  结束;   /

enter code here

1 个答案:

答案 0 :(得分:1)

您可以使用or使查询过滤器成为条件:

select col1, col2
bulk collect into some_collectin
from table1
where p_1 is null or col1 = p_1

如果p_1为null,或者因为没有传递参数或者参数为null,那么第一部分匹配 - 对于所有行。如果它不为null,那么第一部分与任何行都不匹配,因此相等检查仅适用于对与参数匹配的行进行过滤。

如果您有其他条件,请记住使用括号确保整体逻辑正确:

where (p_1 is null or col1 = p_1)
and ...