Quando si esegue una query su Oracle Database, è possibile utilizzare SPOOL comando per esportare i risultati della query in un file di testo quando si utilizza SQLcl.
Esempio
Ecco un esempio che esporta un'intera tabella:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Ecco cosa ha fatto, riga per riga:
- La prima riga utilizza il
SPOOLcomando per specificare dove verrà scritto il file di output. Assicurati di modificare/Users/barney/data/regions.txtin una posizione sul tuo sistema e un nome file appropriato. - Sulla seconda riga, ho eseguito la query SQL, i risultati per i quali sto esportando. In questo caso, ho esportato tutte le
regionstabella. - Poi ho girato
SPOOLspento.
Ecco come appare il file risultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
Nel mio caso, il mio SQLFORMAT era impostato su ansiconsole , e quindi l'output lo riflette.
Puoi cambiarlo in qualsiasi formato adatto.
Ecco un esempio di esportazione del risultato in un formato che può essere utilizzato come file di importazione con sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole Risultato:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
In questo caso ho anche resettato SQLFORMAT torna a ansiconsole una volta che il SPOOL operazione completata.
Rimuovi feedback
Puoi rimuovere il X rows selected con 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 Risultato:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
In questo caso ho girato FEEDBACK riattivare dopo aver esportato il file.
Aggiungi i risultati
Per impostazione predefinita, SPOOL utilizza REPLACE , che sostituisce il file se esiste già.
Tuttavia, possiamo usare il APPEND argomento per aggiungere i risultati al file.
Esempio:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on File risultante:
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
Questo esempio ha aggiunto i risultati al file che è stato creato (e popolato) nell'esempio precedente. Ciò ha comportato la duplicazione del risultato nel file.
Sovrascrivi il file esistente
Possiamo usare REPLACE per sovrascrivere il file esistente con i risultati di una nuova query:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on File risultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Come accennato, REPLACE è l'impostazione predefinita, quindi avremmo potuto semplicemente omettere del tutto questo argomento.