パラメータの受け渡し中にこのコードブロックを実行すると問題が発生します。パラメータ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;
実行コードは次のとおりです。
declare
inparam varchar2(20) := 'xyz,ran,dom';
begin
goku.test_pl(inparam);
end;
/
WHERE条件を次のように実行したい:
where column_name in ('xyz','ran','dom');
xyz,ran,dom
ただし、文字列そのものと見なして実行されます。
それを達成する方法はありますか?