Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

4 Cara Menyisipkan Beberapa Baris di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TZ_OFFSET() Fungsi di Oracle

  2. Tampilan Oracle lebih dari 24 jam

  3. Bagaimana saya bisa mengekstrak file dari bidang Oracle BLOB?

  4. Addnode resolv.conf Kegagalan

  5. PDB Cabut Kesalahan ORA-17528