sql >> Database >  >> RDS >> Oracle

Queryresultaten exporteren naar een .txt-bestand bij gebruik van SQLcl (Oracle)

Bij het opvragen van Oracle Database kunt u de SPOOL . gebruiken commando om uw zoekopdrachtresultaten naar een tekstbestand te exporteren bij gebruik van SQLcl.

Voorbeeld

Hier is een voorbeeld dat een hele tabel exporteert:

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

Dit is wat het deed, regel voor regel:

  • De eerste regel gebruikt de SPOOL commando om aan te geven waar het uitvoerbestand zal worden geschreven. Zorg ervoor dat u /Users/barney/data/regions.txt . wijzigt naar een locatie op uw systeem en een geschikte bestandsnaam.
  • Op de tweede regel heb ik de SQL-query uitgevoerd - de resultaten waarvoor ik exporteer. In dit geval heb ik de hele regions geëxporteerd tafel.
  • Vervolgens draaide ik SPOOL uit.

Zo ziet het resulterende bestand eruit:

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

4 rows selected. 

In mijn geval, mijn SQLFORMAT was ingesteld op ansiconsole , en dus weerspiegelt de uitvoer dat.

U kunt dit naar elk gewenst formaat wijzigen.

Hier is een voorbeeld van het exporteren van het resultaat in een formaat dat kan worden gebruikt als importbestand met sql*loader:

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

Resultaat:

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

4 rows selected. 

In dit geval reset ik ook de SQLFORMAT terug naar ansiconsole eenmaal de SPOOL operatie was voltooid.

Feedback verwijderen

U kunt de X rows selected met 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

Resultaat:

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

In dit geval draaide ik FEEDBACK weer aan na het exporteren van het bestand.

Voeg de resultaten toe

Standaard SPOOL gebruikt REPLACE , die het bestand vervangt als het al bestaat.

We kunnen echter de APPEND . gebruiken argument om de resultaten aan het bestand toe te voegen.

Voorbeeld:

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

Resulterend bestand:

   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 dit voorbeeld zijn de resultaten toegevoegd aan het bestand dat in het vorige voorbeeld is gemaakt (en ingevuld). Hierdoor werd het resultaat gedupliceerd in het bestand.

Het bestaande bestand overschrijven

We kunnen REPLACE . gebruiken om het bestaande bestand te overschrijven met de resultaten van een nieuwe zoekopdracht:

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

Resulterend bestand:

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

Zoals vermeld, REPLACE is de standaardinstelling, dus we hadden dit argument gewoon helemaal kunnen weglaten.


  1. Hoe Lighttpd te installeren met PHP, MariaDB en PhpMyAdmin in Ubuntu

  2. Salesforce SOQL van Crystal Reports

  3. Slaapfunctie in ORACLE

  4. Best practices voor het werken met meerdere tabellen