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)
您不能简单地在一个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)