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
SPOOLkommando for at angive, hvor outputfilen skal skrives. Sørg for at ændre/Users/barney/data/regions.txttil 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
regionstabel. - Dernæst vendte jeg
SPOOLslukket.
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.