sql >> Base de Datos >  >> RDS >> Oracle

Cómo exportar resultados de consultas a un archivo .txt cuando se usa SQLcl (Oracle)

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.