在oracle中创建带参存储过程,传进去的参数可以为空么?在存储过程中要如何判断传进来的值是不是为空。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle中创建带参存储过程,传进去的参数可以为空么?在存储过程中要如何判断传进来的值是不是为空。相关的知识,希望对你有一定的参考价值。

我想用一个存储过程,里面加一个判断,(判断传近来的条件是否为空),如果为空就执行普通的查询,如果有值就执行带where条件的查询.

传进去的条件是可以为空的,判断的话加上if(XX is not null and XX<>' ')then......... 参考技术A if pi_strin is null then --判断传入参数
v_sql :='select 1 from dual '; --不带参数
else
v_sql :='select 1 from dual where 条件=' || pi_strin;
end if;
--执行SQL查询
execute ....
参考技术B create procedure 过程名(inparam in varchar2)
as
begin
if inparam is null then
普通查询;
else
带where条件的查询;
end if;
end;

这样写试一下,看看是否好用。
参考技术C 比如:
select xxx from tab
where (p_param is null and 1=1) or (p_param is not null and col = xxx)

以上是关于在oracle中创建带参存储过程,传进去的参数可以为空么?在存储过程中要如何判断传进来的值是不是为空。的主要内容,如果未能解决你的问题,请参考以下文章

oracle带参(传入,传出)的存储过程怎么执行

如何在 Oracle 12c 中创建带条件的索引?

oracle存储过程中参数datatable如何接收,求高手!

如何在 django 中创建带参数的链接

java调用oracle存储过程 关于sql里面in函数参数的问题

sql如何批量进行执行存储过程并传参数?