スクリプト化された計算ビューに、単一の値の入力パラメーターを取り、別の計算ビューの入力パラメーターに対して複数の入力の文字列を生成する SQL スクリプトがあるとします。
BEGIN
declare paramStr clob;
params = select foo
from bar
where bar.id = :IP_ID;
select '''' || string_agg(foo, ''', ''') || ''''
into paramStr
from :params;
var_out = select *
from "_SYS_BIC"."somepackage/MULTIPLE_IP_VIEW"(PLACEHOLDER."$$IP_IDS$$" => :paramStr);
END
これは期待どおりに機能します。ただし、var_out
クエリを変更して where 句で変数を使用しようとすると
BEGIN
...
var_out = select *
from "_SYS_BIC"."somepackage/MULTIPLE_IP_VIEW"
where "IP_IDS" in(:paramStr);
END
ビューはアクティブになりますが、クエリから結果が得られません。実行時エラーはなく、空の結果セットのみです。WHERE IN()
句に手動で値を渡すと、すべて正常に動作します。初歩的な問題のように思えますが、機能させることができないようです。連結式ではchar(39)
なく使用してみましたが、バナナはありません:(''''