Jika Anda menggunakan DBMS seperti MySQL atau SQL Server, sintaks untuk menyisipkan beberapa baris ike tabel dengan satu pernyataan cukup mudah.
Tetapi jika Anda menggunakan Oracle Database, Anda harus menggunakan sintaks yang berbeda.
Opsi 1:Gunakan SELECT
Kueri
Opsi pertama adalah menggunakan SELECT
pernyataan untuk setiap baris yang perlu disisipkan:
INSERT INTO Products (ProductId, ProductName, Price)
WITH p AS (
SELECT 1, 'Left Handed Screwdriver', 10.50 FROM dual UNION ALL
SELECT 2, 'Right Handed Screwdriver', 22.75 FROM dual UNION ALL
SELECT 3, 'Bottomless Coffee Cup (4 pack)', 15.00 FROM dual UNION ALL
SELECT 4, 'Urban Dictionary Version 2.3', 75 FROM dual UNION ALL
SELECT 5, 'Beer Water', 15 FROM dual
)
SELECT * FROM p;
Kita perlu menyertakan FROM dual
untuk setiap baris, UNION ALL
untuk menggabungkan setiap SELECT
pernyataan, serta SELECT
final terakhir pernyataan.
Opsi 2:Gunakan INSERT ALL
Pilihan lainnya adalah dengan menggunakan INSERT ALL
pernyataan:
INSERT ALL
INTO Products ( ProductId, ProductName, Price ) VALUES ( 1, 'Left Handed Screwdriver', 10.50 )
INTO Products ( ProductId, ProductName, Price ) VALUES ( 2, 'Right Handed Screwdriver', 22.75 )
INTO Products ( ProductId, ProductName, Price ) VALUES ( 3, 'Bottomless Coffee Cup (4 pack)', 15.00 )
INTO Products ( ProductId, ProductName, Price ) VALUES ( 4, 'Urban Dictionary Version 2.3', 75 )
INTO Products ( ProductId, ProductName, Price ) VALUES ( 5, 'Beer Water', 15 )
SELECT 1 FROM dual;
Pastikan untuk menyertakan pemilihan baris terakhir dari dual
.
Opsi 3:Gunakan Beberapa INSERT INTO
Pernyataan
Cara lain untuk melakukannya adalah dengan menggunakan INSERT INTO
pernyataan:
INSERT INTO Products VALUES ( 1, 'Left Handed Screwdriver', 10.50 );
INSERT INTO Products VALUES ( 2, 'Right Handed Screwdriver', 22.75 );
INSERT INTO Products VALUES ( 3, 'Bottomless Coffee Cup (4 pack)', 15.00 );
INSERT INTO Products VALUES ( 4, 'Urban Dictionary Version 2.3', 75 );
INSERT INTO Products VALUES ( 5, 'Beer Water', 15 );
Anda mungkin menemukan bahwa ini berjalan jauh lebih lambat daripada dua metode sebelumnya jika Anda memiliki banyak baris untuk disisipkan.
Opsi 4:Gunakan SQL*Loader
Jika Anda memiliki banyak baris untuk disisipkan, dan mungkin jika Anda melakukannya secara teratur, Anda mungkin ingin melihat SQL*Loader.
SQL*Loader adalah utilitas yang memungkinkan Anda memuat data dari file eksternal ke dalam tabel Database Oracle.
Dengan menggunakan contoh di atas, konten file kontrol kita mungkin terlihat seperti ini:
load data
infile 'products.csv'
into table Products
fields terminated by "," optionally enclosed by '"'
( ProductId, ProductName, Price )
Dimana products.csv
adalah file yang berisi semua baris yang akan disisipkan.
Dan kemudian memuat data mungkin terlihat seperti ini:
sqlldr <username> control=load_products.ctl
Dimana <username>
adalah nama pengguna kami dan load_products.ctl
adalah file kontrol kami.
Lihat dokumentasi Oracle untuk SQL*Loader untuk informasi selengkapnya tentang cara menggunakannya.