【发布时间】:2014-06-16 07:02:08
【问题描述】:
如果我输入我的源表名称,数据将复制到我们的目标表中:
'Create or Replace procedure p
(source_tab varchar2,target_tab varchar2)
As
query varchar2(200);
Type I_tab is table of varchar2(100000) index by binary_integer;
Rec_i I_tab;
Begin
query=’select * from’||source_tab;
Execute immediate query bulk collect into rec_i;
Forall i in rec_i.first..rec_i.last
Execute immediate’insert into’||target_tab||’values’||rec_i(i);
Commit;
End;
/
【问题讨论】:
-
或许您可以告诉我们您遇到的什么错误?为什么标题询问多个表,你只有一个源表?你为什么要为此使用
execute immediate?甚至是任何 PL/SQL? -
除了下面@APC 的帖子中提到的错误之外,在第8 行您写
query=的地方也存在问题。 PL/SQL 中的赋值运算符是:=,应该在这一行中使用而不是=。此外,在第 1 行中,该行的开头有一个不应该存在的单引号。分享和享受。
标签: oracle plsql insert dynamic-sql