Al consultar Oracle Database, puede usar el SPOOL comando para exportar los resultados de su consulta a un archivo de texto cuando usa SQLcl.
Ejemplo
Aquí hay un ejemplo que exporta una tabla completa:
SPOOL '/Users/barney/data/regions.txt';
SELECT * FROM regions;
SPOOL off; Esto es lo que hizo, línea por línea:
- La primera línea usa el
SPOOLcomando para especificar dónde se escribirá el archivo de salida. Asegúrese de cambiar/Users/barney/data/regions.txta una ubicación en su sistema y un nombre de archivo apropiado. - En la segunda línea, ejecuté la consulta SQL:los resultados que estoy exportando. En este caso, exporté las
regionscompletas. mesa. - Luego, giré
SPOOLapagado.
Así es como se ve el archivo resultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
En mi caso, mi SQLFORMAT se configuró en ansiconsole , por lo que la salida refleja eso.
Puede cambiar esto a cualquier formato que se adapte.
Aquí hay un ejemplo de cómo exportar el resultado en un formato que se puede usar como un archivo de importación con sql*loader:
SET SQLFORMAT loader
SPOOL '/Users/barney/data/regions_loader.txt';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole Resultado:
1|"Europe"| 2|"Americas"| 3|"Asia"| 4|"Middle East and Africa"| 4 rows selected.
En este caso también restablecí el SQLFORMAT volver a ansiconsole una vez que el SPOOL la operación se había completado.
Eliminar comentarios
Puede eliminar la 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 Resultado:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
En este caso, convertí FEEDBACK volver a encender después de exportar el archivo.
Adjuntar los resultados
Por defecto, SPOOL usa REPLACE , que reemplaza el archivo si ya existe.
Sin embargo, podemos usar el APPEND argumento para agregar los resultados al archivo.
Ejemplo:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Archivo resultante:
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
Este ejemplo agregó los resultados al archivo que se creó (y completó) en el ejemplo anterior. Esto provocó que el resultado se duplicara en el archivo.
Sobrescribir el archivo existente
Podemos usar REPLACE para sobrescribir el archivo existente con los resultados de una nueva consulta:
SET SQLFORMAT ansiconsole
SET FEEDBACK off
SPOOL '/Users/barney/data/regions_no_feedback.txt' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on Archivo resultante:
REGION_ID REGION_NAME
____________ _________________________
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
Como se mencionó, REPLACE es la configuración predeterminada, por lo que simplemente podríamos haber omitido este argumento por completo.