När du frågar Oracle Database kan du använda SPOOL kommando för att exportera dina frågeresultat till en textfil när du använder SQLcl.
Exempel
Här är ett exempel som exporterar en hel tabell:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Så här gjorde den rad för rad:
- Den första raden använder
SPOOLkommando för att ange var utdatafilen ska skrivas. Se till att ändra/Users/barney/data/regions.txttill en plats på ditt system och ett lämpligt filnamn. - På den andra raden körde jag SQL-frågan – resultaten för vilka jag exporterar. I det här fallet exporterade jag hela
regionstabell. - Närnäst vände jag till
SPOOLav.
Så här ser den resulterande filen ut:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
I mitt fall, min SQLFORMAT var inställd på ansiconsole , och så återspeglar utdata det.
Du kan ändra detta till vilket format som helst.
Här är ett exempel på att exportera resultatet i ett format som kan användas 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 det här fallet återställer jag också SQLFORMAT tillbaka till ansiconsole en gång SPOOL operationen hade slutförts.
Ta bort feedback
Du kan ta bort 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 det här fallet vände jag till FEEDBACK igen efter att ha exporterat filen.
Lägg till resultaten
Som standard, SPOOL använder REPLACE , som ersätter filen om den redan finns.
Däremot kan vi använda APPEND argument för att lägga till resultaten till filen.
Exempel:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Resultatfil:
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
Det här exemplet bifogade resultaten till filen som skapades (och fylldes i) i föregående exempel. Detta resulterade i att resultatet duplicerades i filen.
Skriv över den befintliga filen
Vi kan använda REPLACE för att skriva över den befintliga filen med resultaten av en ny fråga:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Resultatfil:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Som nämnt, REPLACE är standardinställningen, så vi kunde helt enkelt ha utelämnat detta argument helt och hållet.