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

So exportieren Sie Abfrageergebnisse in eine TXT-Datei, wenn Sie SQLcl (Oracle) verwenden

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.