小编arc*_*123的帖子

在PL/SQL存储过程中将多个变量传递到WHERE条件

传递参数时执行此代码块时出现问题.参数rf是要输入WHERE子句的变量列表.要输入的变量数不是静态的.

create or replace
procedure test_pl(rf in varchar2)
IS 
counter number;

BEGIN
  select count(*) into counter from test_pl_imp where column_name in (rf);
  dbms_output.put_line(counter);
END;
Run Code Online (Sandbox Code Playgroud)

执行代码如下:

declare 
inparam varchar2(20) := 'xyz,ran,dom';
begin
goku.test_pl(inparam);
end;
/
Run Code Online (Sandbox Code Playgroud)

我希望WHERE条件执行如下:

where column_name in ('xyz','ran','dom');
Run Code Online (Sandbox Code Playgroud)

但它会被视为xyz,ran,dom一个字符串本身而被执行.

有没有办法实现它?

sql plsql stored-procedures

2
推荐指数
1
解决办法
7585
查看次数

标签 统计

plsql ×1

sql ×1

stored-procedures ×1