0
我有一个代码块这样的:如何在Oracle PL/SQL中执行立即执行块内更新?
SELECT AF INTO JC FROM I_EAggr WHERE Name = 'SED' for Update ;
这里,I_EAggr表将被动态调用和客户的具体名称栏会出现在所有客户端模式。
现在我需要在Execute Immediate中写下这个。 任何帮助将不胜感激。
在此先感谢。
我有一个代码块这样的:如何在Oracle PL/SQL中执行立即执行块内更新?
SELECT AF INTO JC FROM I_EAggr WHERE Name = 'SED' for Update ;
这里,I_EAggr表将被动态调用和客户的具体名称栏会出现在所有客户端模式。
现在我需要在Execute Immediate中写下这个。 任何帮助将不胜感激。
在此先感谢。
您可能需要像这样:
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.
谢谢,其实我得到的错误是由于“”“的更新” ..它正在采取更新的命令,但下一行是不能够标识为SQL命令。 EXECUTE IMMEDIATE vSQL INTO JC; ...如果我将它作为''''更新'[四个单引号],它会识别下一个命令,但是对于更新会发生错误! –
我不能完全理解;请发布您的实际代码和您正在使用的错误 – Aleksej
基本上这条线在vSQL之后出现错误!编译错误是:错误(79,119):PLS-00103:遇到下列其中一项时遇到符号“”:*&= - +;> at in是mod余数不是rem返回返回<>或!=或= => = <= <>和or like2 like4 likec介于using ||批量成员submultiset符号“”被忽略。 –