1. 程式人生 > >使用Oracle插入語法來插入多條記錄

使用Oracle插入語法來插入多條記錄

問:怎樣才能在Oracle中只用一個INSERT來插入多條記錄?除了寫五條INSERT來插入五條記錄到一個表,我更傾向於用一條單獨的語句來執行插入。


答:根據PSOUG.org上的資訊,一條INSERT語句可以新增一條或多條記錄到一個關係型資料庫的任意一個表中。為了讓使用者插入記錄到一個表,此表必須是在使用者自己的模式中或者此使用者必須在此表上有插入物件的許可權。

如果使用的是Oracle 10g或以上版本,你就可以使用Insert All來插入來自多個表的多條資料記錄到一個表中:

INSERT ALL

INTO table (column1, column2, , ,)

VALUES (list of values)


SELECT ....

FROM table1, table2, ,

WHERE....;

如果插入來自於一個電子表格或是逗號分隔檔案的資料,你就可以要麼建立一個臨時表,要麼建立一個外部表來載入資料。

與此同時,你還可以選擇以下方法:

INSERT INTO table_name (column_1, column_2, ..., column_n)

SELECT value_1, value_2, ..., value_n

FROM ...

另外,還可以在一個單獨步驟中使用以下Oracle插入語法來插入多條記錄:

INSERT ALL INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3') INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3') INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3') SELECT * FROM dual;


還可以使用類似下面的命令來插入多個值到多個表中:

INSERT ALL INTO product (product_id,product_name) VALUES (1000, 'Disc') INTO product (product_id, product_name) VALUES (2000, 'Floppy') INTO customers (customer_id, customer_name, city) VALUES (999999, 'Anderson Construction', 'New York') SELECT * FROM dual;

相關推薦

使用Oracle插入語法插入記錄

問:怎樣才能在Oracle中只用一個INSERT來插入多條記錄?除了寫五條INSERT來插入五條記錄到一個表,我更傾向於用一條單獨的語句來執行插入。答:根據PSOUG.org上的資訊,一條INSERT語句可以新增一條或多條記錄到一個關係型資料庫的任意一個表中。為了讓使用者插

Oracle中將查詢出的記錄的某個欄位拼接成一個字串的方法

http://zhidao.baidu.com/link?url=PQfRn7OH1XlZmCeQNT-Uofy00geAzvSpoDZ-B70rF33_TIcCCkRfCBfvOZtbZOq4V9areNdYt4KvF4oS9unZfyFBScPCKBwGKprlVy7j

oracle 字串分割轉化為記錄

select a.name (select COLUMNSTRJOIN(a.name)                        from cmdb_keycity a                       where a.id in              

oracle Insert 一次插入記錄

pan rac ora 方法 tab where ble code 兩種方法 oracle Insert 一次插入多條記錄有兩種方法: 1)Insert All Into table_name values ... insert all into table_name v

oracle 一次sql插入記錄

假如我有一個學生資訊表,建立的表結構如下: create table student( id int primary key not null, name varchar(10) not null) 熟悉MySQL資料庫的可能知道,如果你想要批量插入一些資料,一條INSER

Oracle 怎樣一次插入記錄

Oracle 一次性插入多條記錄跟 MYSQL 有很大不同。MYSQL  是這樣的,但在 Oracle 中行不同。 INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees'),('Gates', 'Champs-E

Oracle中以insert values的形式同時插入記錄

由於要做測試資料插oracle資料庫,想到了mysql的多個values的形式,但是sql報錯。oracle並不支援這種一個insert into 多個values的方法INSERT INTO users(name, age) VALUES('ccc', 333), ('aa

Oracle和Mysql-可行的插入記錄的SQL語句(總結)

Oracle資料批量插入:    (1) 多個insert語句放在begin - end裡面。        例:            BEGININSERT INTO tbl(id,last_name,gender) VALUES(seq.nextval,'name1',

使用JDBC一次插入記錄(以MySQL為例)

閱讀本文需要的先修知識: 最基本的SQL語句 最基本的JDBC操作(如插入單條記錄) 如急需使用請直接看最後一段程式碼。 在JDBC中,插入記錄最簡單的方法是使用executeUpdate()方法,但該方法中的引數只能是單條SQL語句,其實對於需要INSERT或者UPDA

insert語句批量插入記錄

1.第一種方法: insert into persons (id_p, lastname , firstName, city ) values (200,'haha' , 'deng' , 'she

mysql中一insert語句批量插入記錄

插入語句常用寫法: INSERT INTO items(name,city,price,number,picture)  VALUES('耐克運動鞋','廣州',500,1000,'003.jpg')

使用JDBC一次插入個表、記錄

程式碼如下: public static void insertBatch() { int count[]; int count1[]; Boolean isinsert = false; Connection con = null; PreparedS

sql語句優化一次進行記錄的-----插入和修改

更新: update t_student set name = 'timy' where id = 10 現在我要更新ID為10、12 、13的age等於10、12、13 UPDATE t_student SET age= CASEWHEN id 10 THEN10WHE

mysql插入記錄

insertinto vip_prep (select vip_cname,vip_mobile,cityCode,disttrict,vip_officetel,offer_id, is_associator,add_time from vip_user where is_associator=0)inse

mysql 插入資料如何使用INSERT插入記錄

看到這個標題也許大家會問,這有什麼好說的,呼叫多次INSERT語句不就可以插入多條記錄了嗎!但使用這種方法要增加伺服器的負荷,因為,執行每一次 SQL伺服器都要同樣對SQL進行分析、優化等操作。幸好M

在JDBC一次插入個表、記錄

{   con = getCon();   con.setAutoCommit(false);                                   // 需要用到事務,不能讓他自動提交,需要手動提交   pst = con.prepareStatement(INSERT_SQL);      

SQLite一SQL語句插入記錄,批量插入

為了減少資料庫連線的I/O開銷,一般會把多條資料插入放在一條SQL語句中一次執行。 以前用Mysql做開發一直是這樣用的: INSERT INTO TABLE(col1, col2) VALUES(val11, val12), (val21, val22) ; 最近用SQL

MySQL使用一INSERT語句插入記錄

注意:使用一條INSERT語句來插入多條記錄。這並不是標準的SQL語法,因此只能在MySQL中使用。 同理也解釋了insert into table_B  select * from table_A這種用法(快速複製). 

Sql server儲存過程以及一次插入記錄

首先簡單介紹sql server儲存過程吧。至於概念含義啥的就不做過多介紹了。它其實和mysql有些類似,語法大同小異。 還是用例子說明問題吧。CREATE PROCEDURE insert_supplier @supplier_name varchar(30), @sup

mysql查詢最後幾、生成一包含記錄插入語句、差值查詢

1、查詢第一行記錄:  select * from table limit 1  2、查詢第n行到第m行記錄  select * from table1 limit n-1,m-n;  SELECT