Inicialización BFILE | DBMS_LOB
Los objetos BFILE requieren un tipo de inicialización diferente, por ser objetos que no están físicamente dentro de la BBDD.
Se deben de inicializar mediante BFILENAME.
Características:
– Al estar fuera de la BBDD no existe control de transacciones sobre ellos.
– Sólo son objetos de Lectura
– El localizador es: Directorio + Fichero.
BFILE. Directorio
Entendemos por directorio, un nuevo objeto del Diccionario de Datos que permite conocer la localización de un archivo en el sistema operativo.
Es un alias lógico para el PATH real del archivo.
Create DIRECTORY Nombre as Camino_Sistema_Operativo
CREATE DIRECTORY mio AS ‘C:\orawins\dbs’; GRANT READ ON DIRECTORY mio TO PUBLIC; |
Para poder introducir un objeto deberemos utilizar la función BFILENAME.
BFILENAME (Directorio, Nombre_archivo) return BFILE;
INSERT INTO T1 VALUES (30, NULL, NULL, BFILENAME(‘mio’,’fichero.txt’); |
Cuando se copia elementos de tipo BFILE se copia sólo la referencia, al contrario que los BLOB o CLOB que copiamos todo el objetos en la BD.
Si borramos un file que contiene un campo BFILE, se borra el localizador y nunca el archivo real del Sistema Operativo!
El número máximo de BFILE abiertos por sesión dependerá del parámetro SESSION_MAX_OPEN_FILES.