問題は、 EXECUTE IMMEDIATE
でしようとしている動的ステートメントであると思います PL/SQL文ではなく、SQL文です。そして INTO
は SQL ではなく、PL/SQL です。
動的な SQL を実行できます バインド変数を 1 つだけ含むステートメントを作成し、INTO
を配置します。 動的ステートメントの外側。これは、動的 SQL を実行するときにサポートされます ステートメント:
execute immediately 'select CASE WHEN EXISTS (samplecode =:varSamplecode and auditflag =0 and ' || varFilterString || ') then 1 else 0 end from DUAL'into varResult using IN varSampleCode; コード> プレ>
または、動的な PL/SQL を実行できます 匿名ブロック:
execute immediately 'begin select CASE WHEN EXISTS (samplecode =:varSamplecode および auditflag =0 のサンプルから 1 を選択し、' || varFilterString || ') then 1 else 0 end into :varresult from DUAL; end;'using IN varSampleCode, OUT varResult;
プレ>
今回は INTO
BEGIN
そして END;
現在、動的な PL/SQL を実行しています .
あなたのユースケースでは、動的 SQL を実行する最初のオプションをお勧めします INTO
を配置する 後 ステートメント文字列。