2016年5月10日星期二

Oracle 怎样一次插入多条记录

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一次插入多条记录

没有评论:

发表评论