Oracle 我需要使用下面的代码将多个表数据插入到单个表中,我尝试了,但出现了错误
如果我键入源表名称,数据将复制到目标表中:Oracle 我需要使用下面的代码将多个表数据插入到单个表中,我尝试了,但出现了错误,oracle,plsql,insert,dynamic-sql,Oracle,Plsql,Insert,Dynamic Sql,如果我键入源表名称,数据将复制到目标表中: '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;
'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;
/
在没有任何有用的东西如实际编译或运行时错误的情况下,我们可以做的就是猜测 碰巧你的代码有几个明显的错误
,
,而Oracle希望使用常规ASCII哑引号,
。因此,这将是一个编译错误“插入到”| |目标|选项卡| | |“值”
需要“插入到”| |目标|选项卡| |“值”
。确保检查所有字符串:=
<代码>=是平等性的测试execute immediate
'insert into '|| target_tab ||
' select * from '|| source_tab
也许你能告诉我们你犯了什么错误?为什么标题询问多个表,而您只有一个源表?为什么要为此使用
executeimmediate
?甚至任何PL/SQL?除了@APC在下面的帖子中指出的错误外,第8行中还存在一个问题,您在那里编写了query=
。PL/SQL中的赋值运算符是:=
,应该在此行中使用,而不是=
。此外,在第1行中,行的开头有一个不应该出现的单引号。分享和享受。