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
SPOOLBefehl, um anzugeben, wohin die Ausgabedatei geschrieben werden soll. Achten Sie darauf,/Users/barney/data/regions.txtzu ä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
regionsexportiert Tabelle. - Als nächstes drehte ich
SPOOLaus.
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.