Saat menanyakan Database Oracle, Anda dapat menggunakan SPOOL
perintah untuk mengekspor hasil kueri Anda ke file teks saat menggunakan SQLcl.
Contoh
Berikut ini contoh yang mengekspor seluruh tabel:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;
Inilah yang dilakukannya, baris demi baris:
- Baris pertama menggunakan
SPOOL
perintah untuk menentukan di mana file output akan ditulis. Pastikan untuk mengubah/Users/barney/data/regions.txt
ke lokasi di sistem Anda, dan nama file yang sesuai. - Pada baris kedua, saya menjalankan kueri SQL – hasil yang saya ekspor. Dalam hal ini, saya mengekspor seluruh
regions
meja. - Selanjutnya, saya mengubah
SPOOL
mati.
Berikut tampilan file yang dihasilkan:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa 4 rows selected.
Dalam kasus saya, SQLFORMAT
saya disetel ke ansiconsole
, dan output mencerminkan hal itu.
Anda dapat mengubah ini ke format apa pun yang sesuai.
Berikut adalah contoh mengekspor hasil dalam format yang dapat digunakan sebagai file impor dengan sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole
Hasil:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
Dalam hal ini saya juga mereset SQLFORMAT
kembali ke ansiconsole
setelah SPOOL
operasi telah selesai.
Hapus Masukan
Anda dapat menghapus X rows selected
dengan SET FEEDBACK off
:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Hasil:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Dalam hal ini saya mengubah FEEDBACK
hidupkan kembali setelah mengekspor file.
Tambahkan Hasil
Secara default, SPOOL
menggunakan REPLACE
, yang menggantikan file jika sudah ada.
Namun, kita dapat menggunakan APPEND
argumen untuk menambahkan hasil ke file.
Contoh:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
File yang dihasilkan:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Contoh ini menambahkan hasil ke file yang dibuat (dan diisi) pada contoh sebelumnya. Ini mengakibatkan hasil digandakan dalam file.
Timpa File yang Ada
Kita dapat menggunakan REPLACE
untuk menimpa file yang ada dengan hasil kueri baru:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
File yang dihasilkan:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Seperti yang disebutkan, REPLACE
adalah pengaturan default, jadi kita bisa saja mengabaikan argumen ini sama sekali.