sql >> Database teknologi >  >> RDS >> Oracle

Sådan eksporteres forespørgselsresultater til en .txt-fil, når du bruger SQLcl (Oracle)

Når du forespørger i Oracle Database, kan du bruge SPOOL kommando til at eksportere dine forespørgselsresultater til en tekstfil, når du bruger SQLcl.

Eksempel

Her er et eksempel, der eksporterer en hel tabel:

SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off;

Her er, hvad det gjorde, linje for linje:

  • Den første linje bruger SPOOL kommando for at angive, hvor outputfilen skal skrives. Sørg for at ændre /Users/barney/data/regions.txt til en placering på dit system og et passende filnavn.
  • På den anden linje kørte jeg SQL-forespørgslen – de resultater, som jeg eksporterer for. I dette tilfælde eksporterede jeg hele regions tabel.
  • Dernæst vendte jeg SPOOL slukket.

Sådan ser den resulterende fil ud:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

4 rows selected. 

I mit tilfælde er min SQLFORMAT blev indstillet til ansiconsole , og så afspejler outputtet det.

Du kan ændre dette til et hvilket som helst format, der passer.

Her er et eksempel på eksport af resultatet i et format, der kan bruges som en importfil med sql*loader:

SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole

Resultat:

 1|"Europe"|
 2|"Americas"|
 3|"Asia"|
 4|"Middle East and Africa"|

4 rows selected. 

I dette tilfælde nulstiller jeg også SQLFORMAT tilbage til ansiconsole en gang SPOOL operationen var afsluttet.

Fjern feedback

Du kan fjerne X rows selected med 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

Resultat:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

I dette tilfælde har jeg slået FEEDBACK igen efter eksport af filen.

Tilføj resultaterne

Som standard er SPOOL bruger REPLACE , som erstatter filen, hvis den allerede eksisterer.

Vi kan dog bruge koden APPEND argument for at tilføje resultaterne til filen.

Eksempel:

SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on

Resulterende fil:

   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    

Dette eksempel føjede resultaterne til den fil, der blev oprettet (og udfyldt) i det forrige eksempel. Dette resulterede i, at resultatet blev duplikeret i filen.

Overskriv den eksisterende fil

Vi kan bruge REPLACE for at overskrive den eksisterende fil med resultaterne af en ny forespørgsel:

SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on

Resulterende fil:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

Som nævnt REPLACE er standardindstillingen, så vi kunne simpelthen have udeladt dette argument helt.


  1. Selvstudium til SQL joins

  2. SQL Server, den vildledende XLOCK &optimeringer

  3. Få antallet af dage mellem to datoer i Oracle, inklusive datoerne

  4. Sådan konverteres til store bogstaver i SQLite