【发布时间】:2015-09-24 09:07:14
【问题描述】:
我有几个必须动态执行的更新语句。我正在使用立即执行来执行这两个更新语句。但是,当我这样做时出现以下错误:
ORA-00911: invalid character
ORA-06512: at line 7
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than ..
Execute immediate 中是否有不能执行超过 1 个更新语句的限制?
编辑:举例:
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;
【问题讨论】:
-
你为什么需要
EXECUTE IMMEDIATE?除非您不知道在编译时需要更新的列/表,否则静态 PL/SQL 将是更好的选择。 -
是的,我明白了。我只构建了一个示例来解释我面临的问题。在这个特定的例子中,PK_1 的值是一个变量。因此使用立即执行。