0

您好,以下语句引发了一些错误。它在一个存储过程中。合法吗?

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

我得到的错误是 ORA-00900: invalid SQL statement

我正在努力达到

 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 回答