Saya kira masalahnya adalah, seberapa kompleks "struktur kompleks" Anda?
IDE pemrograman seperti Oracle SQL Developer atau Quest TOAD memiliki wizard untuk mengekspor tabel data ke file CSV.
Jika Anda ingin menggabungkan data dari beberapa tabel, Anda dapat menggunakan tampilan, atau bahkan menulis pernyataan SQL
select e.ename||','||d.dname
from emp e
join dept d on ( e.deptno = d.deptno )
/
(mengingat bahwa kolom sering kali dapat berisi data yang menyertakan koma, jadi Anda mungkin ingin menggunakan karakter yang lebih tidak biasa - atau kumpulan karakter - sebagai pemisah.)
Cara cepat lainnya untuk melakukan sesuatu adalah dengan menggunakan fungsi pelaporan HTML SQL*Plus. Banyak alat spreadsheet dapat mengimpor HTML dan XML yang terstruktur dengan baik tanpa harus disadap. Cari tahu lebih lanjut.
Jika Anda ingin meratakan struktur hierarkis atau sesuatu yang lebih berbelit-belit, Anda mungkin perlu pindah ke PL/SQL. Pendekatan manual akan menggunakan varian dari pernyataan di atas yang cocok untuk menggunakan UTL_FILE:
declare
csv_fh utl_file.filetype;
begin
csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
for r in ( select e.ename, d.dname
from emp e
join dept d on ( e.deptno = d.deptno )
) loop
utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
end loop;
utl_file.fclose(csv_fh);
end;
Jika Anda ingin mengekspor secara khusus ke Excel (yaitu file .XLS) maka Anda harus melampaui bawaan Oracle. Solusi biasa untuk mengekspor langsung dari PL/SQL ke Excel adalah pembungkus OWA_SYLK Tom Kyte untuk api SYLK. Cari tahu lebih lanjut.
Ini bekerja dengan lembar kerja tunggal. Jika Anda ingin mengekspor ke beberapa lembar kerja, ada beberapa solusi alternatif.
Sanjeev Sapre memiliki paket get_xl_xml-nya. Seperti namanya, ia menggunakan XML untuk melakukan transformasi. Temukan lebih banyak lagi.
Jason Bennett telah menulis objek PL/SQL yang menghasilkan dokumen XML Excel. Cari tahu lebih lanjut.