有没有办法在一个 EXECUTE IMMEDIATE
中插入多行?而不是为每个插入编写 EXECUTE IMMEDIATE
...
最佳答案
很难说出你插入的是什么。您可以使用 EXECUTE IMMEDIATE 轻松执行 INSERT...SELECT,但我怀疑这不是您想要的,并且您可能不只是想围绕 EXECUTE IMMEDIATE 进行循环。
如果多表插入不是您想要的,您可以在 PL/SQL block 和/或 FORALL 中使用 EXECUTE IMMEDIATE
create table test_forall_dyn (val varchar2(1));
declare
type tab_char is table of varchar2(1) index by binary_integer;
t_char tab_char;
begin
for i in 1..26 loop
t_char(i) := chr(64 + i);
end loop;
forall i in 1..26
execute immediate
'begin
insert into test_forall_dyn (val) values(:1);
insert into test_forall_dyn (val) values(:1);
end;'
using t_char(i);
end;
/
select count(*) from test_forall_dyn;
关于sql - plsql使用一个立即执行命令插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148324/