在oracle中创建带参存储过程,传进去的参数可以为空么?在存储过程中要如何判断传进来的值是否为空。
我想用一个存储过程,里面加一个判断,(判断传近来的条件是否为空),如果为空就执行普通的查询,如果有值就执行带where条件的查询....
我想用一个存储过程,里面加一个判断,(判断传近来的条件是否为空),如果为空就执行普通的查询,如果有值就执行带where条件的查询.
展开
4个回答
展开全部
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 ....
v_sql :='select 1 from dual '; --不带参数
else
v_sql :='select 1 from dual where 条件=' || pi_strin;
end if;
--执行SQL查询
execute ....
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create procedure 过程名(inparam in varchar2)
as
begin
if inparam is null then
普通查询;
else
带where条件的查询;
end if;
end;
这样写试一下,看看是否好用。
as
begin
if inparam is null then
普通查询;
else
带where条件的查询;
end if;
end;
这样写试一下,看看是否好用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如:
select xxx from tab
where (p_param is null and 1=1) or (p_param is not null and col = xxx)
select xxx from tab
where (p_param is null and 1=1) or (p_param is not null and col = xxx)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询