多个更新立即执行

shi*_*jai 5 oracle plsql oracle11g

我有几个必须动态执行的更新语句。我正在使用立即执行来执行这两个更新语句。但是,这样做时出现以下错误:

ORA-00911: invalid character
ORA-06512: at line 7
00911. 00000 -  "invalid character"
*Cause:    identifiers may not start with any ASCII character other than ..
Run Code Online (Sandbox Code Playgroud)

是否存在限制,即“立即执行”中不能执行多个更新语句?

编辑:例如:

begin 
EXECUTE IMMEDIATE 'UPDATE tt_TGT_TABLE SET PK_1 = ''Demand10'' where ROW_ID = 3923866 ; UPDATE tt_TGT_TABLE SET PK_1 = ''Demand11'' where ROW_ID = 3923868'; 
end;
Run Code Online (Sandbox Code Playgroud)

Fra*_*itt 5

您不能简单地在一个EXECUTE IMMEDIATE调用中连接多个语句-您将不得不使用多个调用:

begin 
  EXECUTE IMMEDIATE 'UPDATE tt_TGT_TABLE SET PK_1 = ''Demand10'' where ROW_ID = 3923866';
  EXECUTE IMMEDIATE 'UPDATE tt_TGT_TABLE SET PK_1 = ''Demand11'' where ROW_ID = 3923868'; 
end;
Run Code Online (Sandbox Code Playgroud)

或将匿名PL / SQL块输入EXECUTE IMMEDIATE

begin 
  EXECUTE IMMEDIATE '
    begin
      UPDATE tt_TGT_TABLE SET PK_1 = ''Demand10'' where ROW_ID = 3923866;
      UPDATE tt_TGT_TABLE SET PK_1 = ''Demand11'' where ROW_ID = 3923868;
    end;';   
end;
Run Code Online (Sandbox Code Playgroud)