jueves, 2 de julio de 2009

Tipos de Datos Especiales

Tipos de Datos Especiales

Estos tipos de datos se utilizan para almacenar data binaria como imágenes, audio, cadenas de bytes, etc. Incluye los tipos raw, long raw, blob, clob, ncob, bfile. También tenemos un tipo de dato que pemrite asignarle un identificador único a cada fila de la base de datos, lso tipos de base de datos los tipos rowid, urowid.

raw(n): Almacena datos binarios de longitud fija. Los datos de tipo raw no implican conversiones de caracter. La longitud máxima de una variable de este tipo es de 32767 bytes en PL/SQL. Sin embargo en un campo de una tabal de raw sólo admite 2000 bytes en Oracle 8i. Se encuentra en desuso, se sustituye por los tipos LOB.

long raw: Almacenan cadenas binarias de ancho variable. Análogo al tipo de dato long, pero como el anterior no implican conversiones de caracter. Almacena ahsta 2Gb. Se encuentra en desuso, se le sustituye por los tipos LOB.
lob (blob, clob, nclob, bfile): Permite almacenar y manipular bloques grandes de datos no estructurados (tales como texto, imágenes, videos, sonidos, etc) en formato de binario o caracter. Una tabla puede contener varias columnas de tipo LOB. Soportan acceso aletorio. Las tablas con columnas de tipo LOB no pueden ser replicadas.

blob (binary large object) : El tamaño máximo es de (4Gb - 1) * tamaño del data block.
clob (caracter large object) : El tamaño máximo es de (4Gb - 1) * tamaño del data block.
nclob (caracter large object conteniendo caracteres Unicode) : El tamaño máximo es de (4Gb-1)* tamaño del data block.
bfile: Puntero a un archivo binario grande almaceado fuera de la base de datos. El tamaño máximo es de 4Gb.
rowid: Datos binarios de ancho fijo. Este tipo de datos sirve para almacenar identificadores únicos de registros. Este identificador es con el que trabaja internamente la base de datos Oracle para identificar dichos registros.
El rowid de una fila es un identificador único para una fila dentro de una base de datos. No hay 2 filas con el mismo rowid. Este tipo de dato sirve para guardar punteros a filas concretas.
Rowid físico almacena la dirección de la fila en las tablas, las tablas en clúster, los índices, excepto en los índices organizados (IOT).
Rowid lógico almacena la dirección de fila en tablas de índice organizado(IOT).

Ejemplo:

Valor:"AAAIugAAJAAC4AhAAI"

El formato el el siguiente: Para "OOOOOOFFFBBBBBBRRR"
OOOOOO: segmento de la base de datos(AAAIug en el ejemplo). Todos los objetos que estén en el mismo esquema y en el mismo segmento tendrán el mismo valor.
FFF: el número de fichero del tablespace relativo que contiene la fila (fichero AAJ en el ejemplo).
BBBBBB: el bloque de datos que contiene la fila (bloque AAC4Ah en el ejemplo). El número de bloque es relativo a su fichero de datos, no al tablespace. Por lo tanto, 2 filas con números de bloque iguales podrían residir en diferentes datafiles del mismo space.
RRR:el número de fila en el bloque (fila AAI en el ejemplo).

urowid(n): Cadena de base 64 que representa la dirección única de una fila en una tabla Indexada. El valor máximo para n es de 4000 bytes, siendo éste el valor predeterminado. Admite rowid a tablas que no sean de Oracle, tablas externas. Admite tanto rowid lógicos como físicos.

0 comentarios: