我必须在列中使用参数,并且列不可为空。但参数默认为null。我该如何控制空值。 因为当我没有给出价值时,它正在考虑将值视为null并且我的脚本失败了。非常感谢你的帮助 例子 -
create procedure test1(p_1 number default null) 如 开始 从table1中选择col1,col2 其中col1 = p_1 - 默认为NULL;
结束; /
enter code here
答案 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 ...