Beim Abfragen der Oracle-Datenbank können Sie den SPOOL
verwenden Befehl zum Exportieren Ihrer Abfrageergebnisse in eine Textdatei bei Verwendung von SQLcl.
Beispiel
Hier ist ein Beispiel, das eine ganze Tabelle exportiert:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;
Hier ist, was es getan hat, Zeile für Zeile:
- Die erste Zeile verwendet den
SPOOL
Befehl, um anzugeben, wohin die Ausgabedatei geschrieben werden soll. Achten Sie darauf,/Users/barney/data/regions.txt
zu ändern an einen Speicherort auf Ihrem System und einen entsprechenden Dateinamen. - In der zweiten Zeile habe ich die SQL-Abfrage ausgeführt – die Ergebnisse, für die ich exportiere. In diesem Fall habe ich die gesamten
regions
exportiert Tabelle. - Als nächstes drehte ich
SPOOL
aus.
So sieht die resultierende Datei aus:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa 4 rows selected.
In meinem Fall mein SQLFORMAT
wurde auf ansiconsole
gesetzt , und die Ausgabe spiegelt dies wider.
Sie können dies in jedes passende Format ändern.
Hier ist ein Beispiel für den Export des Ergebnisses in ein Format, das als Importdatei mit sql*loader verwendet werden kann:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole
Ergebnis:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
In diesem Fall habe ich auch das SQLFORMAT
zurückgesetzt zurück zu ansiconsole
einmal die SPOOL
Vorgang wurde abgeschlossen.
Feedback entfernen
Sie können das X rows selected
mit SET FEEDBACK off
:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Ergebnis:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
In diesem Fall habe ich mich an FEEDBACK
gewandt nach dem Exportieren der Datei wieder einschalten.
Fügen Sie die Ergebnisse hinzu
Standardmäßig SPOOL
verwendet REPLACE
, die die Datei ersetzt, falls sie bereits vorhanden ist.
Wir können jedoch das APPEND
verwenden Argument, um die Ergebnisse an die Datei anzuhängen.
Beispiel:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Ergebnisdatei:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
In diesem Beispiel wurden die Ergebnisse an die Datei angehängt, die im vorherigen Beispiel erstellt (und ausgefüllt) wurde. Dies führte dazu, dass das Ergebnis in der Datei dupliziert wurde.
Bestehende Datei überschreiben
Wir können REPLACE
verwenden um die vorhandene Datei mit den Ergebnissen einer neuen Abfrage zu überschreiben:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on
Ergebnisdatei:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
Wie bereits erwähnt, REPLACE
ist die Standardeinstellung, also hätten wir dieses Argument einfach ganz weglassen können.