UTL_FILE es un paquete incorporado en Oracle que se puede utilizar para operaciones con archivo de texto ubicados
dentro de un directorio. El directorio puede existir ya sea
en el servidor o en la máquina del cliente.Los archivos accedidos por UTL_FILE son
archivos de texto claros y no archivos binarios, debido a su incapacidad para
manejar los caracteres especiales.
UTL_FILE no puede acceder
directamente a cualquiera de los archivos que se encuentran en los sistemas
operativos, para esto debe hacerse la lectura por de directorios de bases de
datos. El DBA crea el directorio de servidor para el archivo, en el que el
usuario debe tener acceso de lectura y escritura antes de utilizarlo en la
operación UTL_FILE.
Si el archivo de destino
esta ubicado en el servidor, UTL_FILE no tiene
restricciones de acceso. Pero si la ubicación del archivo esta en una máquina
cliente, UTL_FILE sólo tiene acceso a esos lugares, que son compartidos y
accesibles desde el servidor.
Directorios de bases de datos
Como se dijo anteriormente,
los directorios de bases de datos son objetos del lado del servidor que apuntan
a una ubicación específica en un sistema. La ubicación puede ser en el servidor
de base de datos o en la máquina cliente. Por defecto, sólo SYSDBA goza del
privilegio CREATE ANY DIRECTORY, por lo que sólo un DBA puede crear el
directorio bajo petición. El usuario, que está usando el directorio, debe tener
acceso de lectura / escritura en él. Compruebe la sintaxis siguiente para crear
el directorio Si la ubicación es en el sistema operativo del servidor, el
directorio tiene que ser creado por la vía real.
Las funciones mas conocidas del paquete ULT_FILE son:
UTL_FILE.FOPEN()
La función abre un archivo desde el directorio del parámetro location en el modo open_mode y se identifica el nombre del archivo filename. Los modos para abrir pueden
ser :
R para leer el
texto
W para
escribir texto
A para añadir
texto
RB para leer
en modo bytes
WB para escribir
en modo bytes
AB para el
modo de añadir byte s
El último parámetro max_linesize es la longitud máxima de
los caracteres en una línea del archivo. El valor se encuentra en el rango de
1para 32767. Por defecto, su valor es de 1024.
UTL_FILE.FOPEN (
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
RETURN
file_type;
UTL_FILE.PUT()
El procedimiento escribe un texto en el archivo, que está
bajo la operación de escritura. Tenga en cuenta que se tiene capacidad para
escribir sólo una parte del texto en el archivo, pero no cambia la línea. En
realidad, se escribe el texto en el búfer de archivo, que puede contener máximo
de 32767 bytes.
UTL_FILE.PUT (
FILE IN FILE_TYPE,
buffer IN VARCHAR2);
UTL_FILE.GET_LINE()
El procedimiento devuelve un texto contenida por el
archivo. El archivo, en modo de lectura, permite una línea de texto que se
leerá y se asigna al parámetro buffer.
LEN especifica los caracteres de la
línea que se deben leer cada intento. Si es nulo, entonces el procedimiento lee
la línea hasta la línea se termina, siempre que la longitud es menor que la max_linesize.
UTL_FILE.GET_LINE (
FILE IN FILE_TYPE,
buffer OUT VARCHAR2,
len IN PLS_INTEGER DEFAULT NULL);
UTL_FILE.FCLOSE()
El procedimiento cierra un archivo, que se apertura para su lectura o escritura.
UTL_FILE.FCLOSE (FILE IN OUT FILE_TYPE);
No hay comentarios:
Publicar un comentario