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
SPOOL
comando para especificar dónde se escribirá el archivo de salida. Asegúrese de cambiar/Users/barney/data/regions.txt
a 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
regions
completas. mesa. - Luego, giré
SPOOL
apagado.
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.