如何在Oracle PL / SQL中的Execute Immediate块内写入更新?

时间:2016-09-16 14:38:24

标签: oracle

我有一个像这样的代码块:

SELECT AF INTO JC FROM I_EAggr WHERE Name = 'SED' for Update ; 

这里,I_EAggr表将被动态调用,客户端特定的Name列将出现在所有客户端模式中。

现在我需要在Execute Immediate中写这个。 任何帮助将受到高度赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可能需要这样的东西:

SQL> create table I_EAggr(name varchar2(16), af number);

Table created.

SQL> insert into I_EAggr values ('SED', 1);

1 row created.

SQL> DECLARE
  2      vSQL           VARCHAR2(1000);
  3      vName          VARCHAR2(16) := 'SED';
  4      vTableName     VARCHAR2(16) := 'I_EAGGR';
  5      vAF            VARCHAR2(16);
  6  BEGIN
  7      vSQL    := 'select af from ' || vTableName || ' where name = ''' || vName || ''' for update';
  8
  9      EXECUTE IMMEDIATE vSQL INTO vAF;
 10  END;
 11  /

PL/SQL procedure successfully completed.