Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erstellen Sie eine Excel-Tabelle aus einer Oracle-Datenbank

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 ist
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;

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.