Ich nehme an, das Problem ist, wie komplex ist Ihre "komplexe Struktur"?
Programmier-IDEs wie Oracle SQL Developer oder Quest TOAD verfügen über Assistenten zum Exportieren von Datentabellen in CSV-Dateien.
Wenn Sie Daten aus mehreren Tabellen zusammenführen möchten, können Sie eine Ansicht verwenden oder sogar eine SQL-Anweisung schreiben
select e.ename||','||d.dname
from emp e
join dept d on ( e.deptno = d.deptno )
/
(Denken Sie daran, dass Spalten oft Daten enthalten können, die Kommas enthalten, daher möchten Sie vielleicht ein ungewöhnlicheres Zeichen - oder eine Gruppe von Zeichen - als Trennzeichen verwenden.)
Eine andere schnelle Möglichkeit, etwas zu tun, ist die Verwendung der HTML-Berichtsfunktion von SQL*Plus. Viele Tabellenkalkulationstools können gut strukturiertes HTML und XML problemlos importieren. Erfahren Sie mehr.
Wenn Sie eine hierarchische Struktur oder etwas noch Verworreneres glätten möchten, müssen Sie wahrscheinlich zu PL/SQL wechseln. Ein handgerollter Ansatz würde eine Variante der obigen Anweisung verwenden, die für die Verwendung von UTL_FILE:
geeignet istdeclare
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;
Wenn Sie speziell nach Excel exportieren möchten (d. h. eine .XLS-Datei), müssen Sie über die integrierten Oracle-Ins hinausgehen. Die übliche Lösung für den direkten Export von PL/SQL nach Excel ist der OWA_SYLK-Wrapper von Tom Kyte für die SYLK-API. Erfahren Sie mehr.
Dies funktioniert mit einzelnen Arbeitsblättern. Wenn Sie in mehrere Arbeitsblätter exportieren möchten, gibt es einige alternative Lösungen.
Sanjeev Sapre hat sein get_xl_xml-Paket. Wie der Name schon sagt, verwendet es XML, um die Transformation durchzuführen. Finde mehr heraus.
Jason Bennett hat ein PL/SQL-Objekt geschrieben, das ein Excel-XML-Dokument generiert. Erfahren Sie mehr.