我有一个包含3列ID (int), Name (string), Status (string)
和1000行的数据表..以及一个包含4列seq
的表格(由SEQR.NEXTVAL
生成),ID
,{{ 1}},Name
。
我想在一个查询中插入所有1000行。我的意思是避免使用循环数据库命中1000次来解决性能问题。
约束是:
有正确代码的任何建议吗?我正在使用Oracle客户端和Status
对象
答案 0 :(得分:2)
所以只使用一个SQL语句,对吗?
insert into table_a (seq_col, id, name, status)
select seqr.nextval, id, name, status
from table_b;
答案 1 :(得分:0)
如果我正确理解了您的问题,您可以在insert语句中使用Select语句:
Insert into table2
Select SEQR.NEXTVAL, tab1.*
from table1 as tab1
答案 2 :(得分:0)
使用Oracle数组DML。您只需从代码中循环填充列数组,并将所有内容作为单个INSERT语句发送。 无论如何,使用绑定变量正确编写查询的IMHO 1000 INSERT不会遇到性能问题。如果你不使用绑定变量并且每次提交都会得到它们......