Saltar al contenido

PAQUETE DBMS_LOB (I)

Este paquete lo voy a desarrollar en varias partes porque tiene bastante 芦chicha禄.
Los objetos LOB (Long Object 鈥 Objetos de gran tama帽o):

Pueden almacenar texto plano o texto binario y parecer columnas dentro de una tabla.
Su tama帽o puede llegar hasta los 8 Gb.
Se manipulan mediante OCI (Oracle Call Interface) o DBMS_LOB
Como ventaja al uso del tipo LONG, disponemos de un n煤mero ilimitado de columnas LOB en la tabla
Los LOB鈥檚 se pueden usar como variables de acoplamiento.

Tipos:
1. CLOB. Similar al tipo LONG
2. NCLOB. almacenan car谩cter UNICODE (Multibyte)
3. BLOB. Similar al tipo LONG RAW. Datos binarios no estructurados.
4. BFILE. Permite el acceso s贸lo de lectura a archivos binarios de gran tama帽o almacenados fuera e la Base de Datos de Oracle. ( Es un puntero)

Almacenamiento

Los tipos de datos BFILE no se almacenan dentro de las tablas de base datos, sino en sitio separado.
Dentro de las tablas se guardan su 鈥渓ocalizador鈥 (puntero)
Definimos los campos dentro de las tablas como columnas normales, pero al darles valor, deberemos tratarlos como objetos.

Create table t1 (key number primary key, CLOB_Col CLOB, BLOB_Col, BFILE_Col BFILE);

Inicializaci贸n LOB鈥檚

Una columna LOB se puede inicializar a NULL, lo cual indica que no existe un almacenamiento real de ning煤n tipo de datos.
no se puede usar el paquete DBMS_LOG para manipular un Localizador a NULL.
Disponemos de una serie de procedimientos de inicializaci贸n para poder usar los LOB鈥檚 de forma correcta.

 

EMPTY_BLOB()
EMPTY_CLOB()
 
INSERT INTO T1 VALUES(10, NULL, NULL, NULL);
INSERT INTO T1 VALUES(20, empty_clob(), empty_blob(), NULL); 
--> Esta ser铆a la forma correcta.