0

こんにちは、次のステートメントはいくつかのエラーをスローします。ストアド プロシージャ内にあります。それは合法ですか?

V_LONG_STR := 'Text1';
EXECUTE IMMEDIATE 'V_LONG_STR := NULL';

表示されるエラーは ORA-00900: 無効な SQL ステートメントです

私は自分の道を歩もうとしています

 V_LONG_STR := 'REPLACE (''TEST1'',''TEST'', ''TEXT'')';
 EXECUTE IMMEDIATE V_LONG_STR;

そしてたまたま

 V_LONG_STR := 'REPLACE (''V_LONG_STR := ''TEST1'',''TEST'', ''TEXT'')';
 EXECUTE IMMEDIATE V_LONG_STR;

しかし、まず最初に

4

2 に答える 2

3
V_LONG_STR := '
  declare
    a varchar2(100);
  begin
    a := REPLACE (''TEST1'',''TEST'', ''TEXT'');
  end;
';
EXECUTE IMMEDIATE V_LONG_STR;
于 2013-04-24T19:55:15.073 に答える
2

または(引用符が埋め込まれた手間が少ない):

V_LONG_STR := q'[
  declare
    a varchar2(100);
  begin
    a := REPLACE ('TEST1','TEST','TEXT');
  end;
]';
EXECUTE IMMEDIATE V_LONG_STR;
于 2013-04-24T21:06:57.947 に答える