バインド変数に問題があります(デフォルト設定のBindByPositionで指定されています)。たとえば、次のような手順があります:PL/SQLでBindByNameを設定する
DECLARE
v_sql varchar2;
BEGIN
v_sql := 'select :1 as field1, :1 as field2 from dual';
EXECUTE IMMEDIATE v_sql USING 'test', 'test';
END;
私は 'test'を2回入力する必要があります。どのように私はこのような手順を持って、trueにBindByNameのを変更することができます。
DECLARE
v_sql varchar2;
BEGIN
v_sql := 'select :1 as field1, :1 as field2 from dual';
EXECUTE IMMEDIATE v_sql USING 'test';
END;
あなたに2つのプレースホルダを配置しようとすると動的クエリは、それは確かに2つのバインド変数が必要になります。それを1に変更することはできません。 – XING