1. 程式人生 > >Oracle 怎樣一次插入多條記錄

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