Deprecated: Function create_function() is deprecated in /home/nekdyruf/public_html/codi/wp-content/plugins/wp-syntax/geshi/geshi.php on line 4751
Aquí os dejo funciones para trabajar con el paquete DBMS_LOB:
1. FILEEXISTS
Indica la existencia o no del fichero indicado
Si devuelve 1 –> fichero existente; 0 –> fichero inexistente
Numer := DBMS_LOB.FILEEXISTS (Localizador IN BFILE); |
Se pueden producir las siguientes excepciones, cuando el localizalizados tiene un valor inapropiado (NULL).
DBMS_LOB.NOEXIST_DIRECTORY.
DBMS_LOB.NOPRIV_DIRECTORY.
DBMS_LOB.INVALID_DIRECTORY.
2. FILEGETNAME
Procedimiento que devuelve el Directorio + Fichero asociado a ese localizador, dentro de las variables indicadas.
DBMS_LOB.FILEGETNAME(Localizador, var_directorio, var_fichero); |
Se pueden producir las siguientes excepciones, cuando el localizador tiene un valor inapropiado (NULL)
DBMS_LOB.INVALID_ARGVAL
3. FILEOPEN
Procedimiento que abre un BFILE indicado de Solo Lectura.
DBMS_LOB.FILEOPEN(Localizador); |
Se pueden producir las siguientes excepciones, cuando el localizador tiene un valor inapropiado (NULL):
NOEXIST_DIRECTORY No existe el directorio indicado
OPEN_TOOMANY Número de ficheros abiertos excede SESSION
INVALID_ARGVAL El modo de apertura no es correcto
INVALID_OPERATION No tiene privilegios para acceder al fichero.
4. FILECLOSE
Procedimiento que cierra un BFILE previamente abierto
DBMS_LOB.FILECLOSE(Localizador); |
Se pueden producir las siguientes excepciones, cuando el localizador tiene un valor inapropiado (NULL)
VALUE_ERROR Valor inapropiado para el localizador
5. LOADFROMFILE
Procedimiento que se utiliza para leer Todo/parte de un fichero externo (BIFLE) o un Objeto LOB interno.
El dato leído lo almacena en un objeto LOB
DBMS_LOB.LOADFROMFILE(Destino, Localizador, tamaño, [Offset_destino], [Offset_fuente]);
DBMS_LOG.LOADFROMFILE (Objeto_LOB, Localizador,100); -- Los otros los toma como 1 |
En el ejemplo copiamos 100 bytes al destino.
Se pueden producir las siguientes excepciones, cuando los localizadores tienen un valor inapropiado (NULL) o si el tamaño es NULL:
VALUE_ERROR Valor inapropiado para el localizador
INVALID_ARGVAL Cuando el tamaño es el inapropiado
offset_des LOBMAXSIZE
offset_soruce LOBMAXSIZE
tamaño LOBMAXSIZE
6. GETLENGTH
Devuelve el tamaño en bytes del fichero pasado como parámetro
Número:= DBMS_GETLENGTH (Localizador);
7. COMPARE
Es un función que se usa para comparar 2 objetos LOB’s del mismo tipo
Si devuelve 0 –> ficheros idénticos; 1 –> ficheros diferentes
NULL –> Objetos de diferente tipo
NUMBER:= DBMS_LOB.COMPARE (Localizador1, Localizador2, tamaño); |
Compara ciertos bytes de los objetos.
Se pueden producir las siguientes excepciones, cuando el localizador tiene un valor inapropiado (NULL):
DBMS_LOB.NOEXIST_DIRECTORY
DBMS_LOB.UNOPEN_FILE
DBMS_LOB.INVALID_DIRECTORY
DBMS_LOB.INVALID_OPERATION
8. READ
Lee en el buffer indicado el número de bytes (BFILE;BLOB)/ caracteres (CLOB/NCLOB) indicados.
DBMS_LOB.READ (Localizador, Tamaño, FOCET, OUT Buffer);
Si el objeto a leer es un BFILE o BLOB, el buffer se debe declarar como variable RAW.
Si el objeto a leer es un CLOB o NCLOB, el buffer se debe declarar como variable VARCHAR2.
Text_buffer varchar2(128); DBMS_LOB.READ(LOC, 128, 1, test_buffer); |
9. WRITE
Escribe desde el buffer indicado el número de bytes (BFILE, BLOB) /caracteres (CLOB/¨NCLOB) indicados.
DBMS_LOB.WRITE (Localizador, Tamaño, offset, Buffer); |
Si el objeto a escribir es un BFILE o BLOB, el buffer se debe declarar como variable RAW y contener el valor a escribir.
Si el objeto a escribir es un CLOB o NCLOB, el buffer se debe declarar como variable VARCHAR2 y contener el valor a escribir.
Text_buffer varchar2(128):= ‘Hola como estamos’; DBMS_LOB.WRITE(LOC, 128, 1, test_buffer); |
10. SUBSTR
Devuelve el número de bytes(BFILE.BLOB) /caracteres (CLOB/NCLOB) indicados.
buffer:=DBMS_LOB.SUBSTR(Localizador, Tamaño, Offset); |
Si el Objeto a leer es un BFILE o BLOB, el buffer se debe de declarar como variable RAW.
Si el objeto a leer es un CLOB o NCLOB, el buffer se debe declarar como variable VARCHAR2.
Text_buffer varchar2(128); Buffer:=DBMS_LOB.SUBSTR(LOC, 128, 1); |
MODIFICANDO BLOB, CLOB y NCLOB
11. APPEND
Procedimiento que añade un BLOB/CLOB a continuación de un objeto del mismo tipo
DBMS_LOB.APPEND (Localizador_destino, Localizador_fuente); |
12. COPY
Procedimiento que copia todo o parte del contenido de un LOB a otro LOB
DBMS_LOB.COPY (Localizador_destino, Localizador_fuente, tamaño); |
13. ERASE
Procedimiento que elimina todo o parte del contenido de un LOB
DBMS_LOB.ERASE(Localizador, Tamaño); |
En esta tabla podemos ver los directorios creados
SELECT * FROM all_directories; En esta tabla podemos ver los directorios creados. |