Jawaban:
Arun,
sekarang sqlcl tersedia dari Oracle SQL Developer 4.1 EA2 (4.1.0.18.37) Anda dapat menggunakannya sangat mirip dengan sqlplus lama dan terkenal. sqlcl memiliki pengaturan format output untuk csv
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
untuk info lebih lanjut tentang checkout sqlcl blog Kris
sebelum sqlcl sekitar termudah untuk ini adalah menggunakan APEX dan mengekspor laporan ke csv. Dalam sqlplus tua biasa Anda dapat melakukan ini dengan menggunakan
set lines 9999 -- the appropriate size
set head off -- no header lines
set colsep ';' --column separator to ;
set pages 0 -- no pages
set feed off
select your data;
spool to_tofile
/
spool off
Ini bekerja paling baik jika hasilnya ditulis pada server aplikasi atau klien. Jika harus ditulis di server database, utl_file mungkin merupakan opsi yang lebih baik.
Ronald.
Anda harus melihat paket UTL_FILE bawaan . Ada beberapa cara Anda bisa menggunakannya.
Anda bisa menulis sejumlah prosedur dalam paket yang menggunakan paket UTL_FILE untuk menulis ke sejumlah file. Prosedur ini kemudian dapat dipanggil dari hampir semua aplikasi termasuk SQL * Plus.
Anda bisa menulis skrip PL / SQL untuk melakukan pekerjaan yang sama dan memanggil skrip dari baris perintah SQL * Plus itu sendiri dengan menetapkan @scriptname pada baris perintah.
Anda bisa menempelkan blok menggunakan UTL_FILE langsung ke SQL * Plus, tetapi ini hanya boleh digunakan untuk satu kali ekspor dan bahkan mungkin itu bukan rute terbaik.
Sederhananya , ekspor file menggunakan UTL_FILE akan terdiri dari panggilan ke FOPEN , satu atau lebih panggilan ke PUT_LINE , dan panggilan ke FCLOSE .
Jika kinerja menjadi masalah, Anda mungkin ingin mempertimbangkan alat dari vendor.
Saya telah mengevaluasi alat dari BMC, Wisdomforce, CoSort, DBCrane. Mereka semua secara signifikan lebih cepat daripada spool, utl_file atau tabel eksternal. Kami menggunakan DBCrane karena bos saya tidak ingin menghabiskan terlalu banyak untuk lisensi.
Anda dapat menggunakan modul Python dan cx_Oracle untuk mengekstrak data ke disk dalam format CSV.
Inilah cara Anda terhubung ke Oracle menggunakan cx_Oracle:
constr='scott/tiger@localhost:1521/ORCL12'
con = cx_Oracle.connect(constr)
cur = con.cursor()
Setelah pengambilan data, Anda dapat mengulang daftar Python dan menyimpan data dalam format CSV.
for i, chunk in enumerate(chunks(cur)):
f_out.write('\n'.join([column_delimiter.join(row[0]) for row in chunk]))
f_out.write('\n')
Saya menggunakan pendekatan ini ketika saya menulis TableHunter-For-Oracle