Oracle 一次性插入多条记录跟 MYSQL 有很大不同。MYSQL是这样的,但在Oracle 中行不同。
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees'),('Gates', 'Champs-Elysees')
Oracle 可以使用虚拟表 dual 一次插入多条记录。dual 在Oracle里有一个很奇特的“表”。可以利用这个Dual来做文章。
首先,你知道 select '1' from dual 是啥结果吗? 对了,结果就是返回1。
其次,你知道
select '1' from dual
union all
select '2' from dual
是啥结果吗? 对鸟,结果是
1
2
那么,最关键的地方来了,
insert into 表名 (字段1)
select '1' from dual
union all
select '2' from dual
那么这一次就插入了两条数据。当然,如果全字段插入 那个(字段1)还可以省略掉。
下面一个具体例子:
insert into doc_data (code,id,value,state)
select '13','川A','成都市公安局交通警察支队车辆管理所',0 from dual
union all select '13','川B','绵阳市公安局交通警察支队车辆管理所',0 from dual
union all select '13','川C','自贡市公安局交通警察支队车辆管理所',0 from dual
union all select '13','川D','攀枝花市公安局交通警察支队车辆管理所',0 from dual
参考:Oracle使用虚拟表dual一次插入多条记录
原文链接:http://woqilin.blogspot.com/2016/05/oracle.html