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

Cara Menulis ke File CSV Menggunakan Oracle SQL*Plus

[SQLPlus](https://docs.Oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) adalah alat interaktif yang dipasang di setiap instalasi Oracle modern. SQL Plus memungkinkan Anda untuk melampaui kueri database standar dengan kumpulan, skrip, dan kalkulasi di luar cakupan normal Oracle.

Bahkan mungkin, seperti yang akan kita jelajahi di bawah – untuk menghasilkan file teks, seperti .csv , menggunakan output dari kueri basis data tertentu.

Meluncurkan SQL*Plus

Tergantung pada instalasi Oracle Anda, Anda mungkin memiliki akses ke salah satu dari banyak versi atau "mode" yang berbeda untuk menjalankan aplikasi SQL*Plus.

SQL*Plus Command-line

Jika Anda ingin menggunakan SQL*Plus Command-line , Anda cukup mengeluarkan sqlplus perintah dari shell Anda:

$ sqlplus

Ini akan mencoba menghubungkan Anda ke default database dan Anda akan diminta memasukkan kredensial untuk mengautentikasi diri Anda sendiri.

Jika Anda perlu terhubung ke database yang berbeda atau gunakan user yang berbeda (schema ), coba yang berikut ini, ganti nilai Anda sendiri seperlunya:

$ sqlplus schema@//machine.domain:port/database

iSQL*Plus

Jika Anda memiliki akses ke sana, Anda mungkin ingin menggunakan iSQL*Plus , yang merupakan versi berbasis browser dari alat baris perintah SQL*Plus.

Hal ini dilakukan hanya dengan mengunjungi iSQL*Plus URL untuk database dan instalasi Anda. URL persisnya akan bervariasi, tetapi biasanya dalam format berikut:http://machine_name.domain:port/isqlplus

SQL*Plus untuk Windows

Jika Anda menggunakan Windows, ada juga versi GUI Windows dari SQL*Plus, yang biasanya dapat diluncurkan dari menu mulai:Start > Programs > Oracle > Application Development > SQL Plus .

Mengeluarkan Kueri ke file

Sekarang setelah Anda terhubung ke SQL*Plus, kami dapat mulai membuat file kami.

Ubah Konfigurasi SQL*Plus

Langkah pertama adalah mengkonfigurasi beberapa pengaturan sistem SQL*PLus menggunakan SET pernyataan.

Untuk contoh ini, kami akan mengubah pengaturan ini secara manual satu kali sebelum kueri dan pembuatan file kami, tetapi jika diinginkan, Anda dapat mengubah default berbagai pengaturan di User Profile Anda , terletak di login.sql berkas.

set colsep ,
set headsep off
set pagesize 0
set trimspool on

Beberapa pengaturan pertama yang biasanya tidak ingin Anda ubah, tetapi kami akan menjelaskan secara singkat apa yang diselesaikan masing-masing.

  • colsep adalah karakter pemisah yang digunakan untuk membagi kolom Anda. Untuk .csv file, ini adalah koma sederhana.
  • headsep adalah karakter pemisah untuk baris header (jika Anda memerlukannya). Dalam contoh ini kita tidak mengeluarkan baris header, jadi kita biarkan off .
  • pagesize adalah jumlah baris “per halaman”. Ini adalah pengaturan yang agak kuno yang dimaksudkan untuk mencetak tanpa terlalu banyak baris per halaman. Dengan nilai 0 , kami tidak menggunakan halaman karena kami mengeluarkan ke file. Jika Anda memilih untuk menampilkan header baris, atur pagesize ke jumlah yang sangat besar (lebih besar dari jumlah hasil rekaman yang diharapkan dalam kueri), sehingga baris tajuk Anda hanya akan muncul satu kali, bukan sekali “per halaman”.
  • trimspool setel ke on cukup hapus spasi kosong.

Sekarang dua pengaturan terakhir perlu diubah tergantung pada kueri Anda.

set linesize #
set numwidth #
  • Untuk linesize , # value harus menjadi jumlah total kolom keluaran dalam kueri yang dihasilkan.
  • numwidth adalah lebar kolom (jumlah spasi karakter) yang digunakan saat mengeluarkan nilai numerik.

Perintah SPOOL

Catatan:SPOOL perintah tidak tersedia dalam versi SQL*Plus berbasis browser, iSQL*Plus . Untuk menghasilkan file saat menggunakan iSQL*Plus, ubah pengaturan preferensi yang diperlukan untuk langsung menghasilkan file.

Dengan pengaturan kami diurus, sekarang kami harus memberi tahu SQL*Plus untuk mengeluarkan file. Ini dilakukan dengan menggunakan SPOOL pernyataan.

Sementara SPOOL sedang aktif , SQL*PLus akan menyimpan output dari setiap kueri ke file yang ditentukan.

Oleh karena itu, perintah selanjutnya yang harus dimasukkan adalah spool :

spool file_path

Melompat sedikit ke depan, setelah kueri Anda dimasukkan, Anda juga perlu menghentikan spool jadi output file ditutup dengan menggunakan spool off perintah:

spool off

Sisipkan Kueri

Langkah terakhir setelah pengaturan diubah dan spool sedang berjalan adalah memasukkan kueri Anda. Untuk contoh sederhana kami, kami mengeluarkan semua buku dari books kami tabel.

SELECT
  title,
  primary_author
FROM
  books;

Jangan lupa tanda titik koma untuk menutup pernyataan kueri Anda, lalu masukkan spool off yang disebutkan di atas perintah.

Itu saja, Anda telah membuat file teks baru dengan hasil kueri Anda menggunakan SQL*Plus.

Kiat:Menggunakan File Skrip

Daripada memasukkan setiap baris secara manual, disarankan untuk memasukkan semua pengaturan ke dalam file skrip baru yang dapat Anda jalankan di SQL*Plus dalam satu perintah.

Buat file skrip baru dengan EDIT pernyataan:

EDIT file_name

Sekarang rekatkan seluruh daftar perintah skrip ke file baru Anda dan simpan. Isi lengkap dari contoh skrip kami dapat ditemukan di bawah ini.

set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5

spool books.csv

SELECT
  title,
  primary_author
FROM
  books;

spool off

Untuk menjalankan skrip, cukup gunakan @ simbol diikuti dengan nama file:

@file_name

Skrip Anda harus dieksekusi dan .csv file dibuat seperti yang diharapkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan daftar semua fungsi dan prosedur dalam database Oracle

  2. Menginstal Oracle 12c Edisi Standar di Windows 10 Professional

  3. Membandingkan dengan tanggal di Oracle sql

  4. Membangun daftar nilai yang dipisahkan koma dalam pernyataan Oracle SQL

  5. Kesalahan SQL:ORA-01861:literal tidak cocok dengan format string 01861