mexico - oracle software
Oracle escribe en el archivo (5)
Este parece ser un tutorial razonable con algunos ejemplos simples ejemplo UTL_FILE
Estoy ejecutando Oracle y tengo una consulta que extrae algunos resultados de la base de datos. Me gustaría escribir los resultados como un archivo de texto. ¿Cómo voy a hacer esto?
Mi forma preferida sería usar UTL_FILE. ¿Alguien tendría un ejemplo de cómo hacer esto?
Si está ejecutando la consulta desde sqlplus , puede usar el comando spool:
spool /tmp/test.spool
Después de ejecutar el comando spool dentro de una sesión, todos los resultados se envían a la consola sqlplus, así como al archivo de texto /tmp/test.spool.
Si está usando Sql Plus, es tan fácil como:
SQL> spool c:/temp/out.txt SQL> SELECT * FROM USERS; SQL> spool off
Estas tres oraciones arrojarán el resultado de la consulta "SELECCIONAR * DE USUARIOS" al archivo c: / temp / out.txt.
Puede formatear esta consulta utilizando las funciones de manipulación de cadenas de Oracle.
Si está utilizando PL / SQL, puede usar el paquete UTL_FILE, la diferencia con sql + spool es que los archivos se escriben en el sistema de archivos del servidor. UTL_FILE tiene una serie de limitaciones, por lo que una alternativa en el lado del servidor sería usar procedimientos almacenados de Java.
Use UTL_FILE en combinación con CREATE DIRECTORY para facilitar el mapeo de una ruta de directorio con un nombre (no crea el directorio real solo como referencia, así que asegúrese de que se cree primero)
ejemplo
create directory logfile as ''d:/logfile''; -- must have priv to do this
declare
vFile utl_file.file_type;
begin
vFile := utl_file.fopen(logfile ,''syslog'',''w''); -- w is write. This returns file handle
utl_file.put(vFile,''Start Logfile''); -- note use of file handle vFile
utl_file.fclose(vFile); -- note use of file handle vFile
end;