miércoles, 1 de julio de 2009

Tipos de Datos Caracter

Tipos de Datos Caracter


Los tipos de datos caracter almacenan data alfanumérica como palabras y texto sin formato. La data caracter es almacenada en cadenas con vectotres de bytes correspondientes a un juego de caracteres, tal como ASCII o EBCDIC, que es especificado al momento de crear la base de datos.


Los tipos de tipo caracter Oracle son char, nchar, nvarchar2, varchar, varchar2, long.

varchar(n): En Oracle8 es equivalente a varchar2, en futuras versiones permitirá distintos criterios de comparación.
varchar2(n): Guarda una cadena de longitud variable donde n es el número de caracteres a almacenar. El tamaaño del campo dependerá del valor que contenga. En PL/SQL el valor máximo de una variable de este tipo es de 32767 bytes, sin embargo las bases de datos Oracle sólo permiten campos de hasta 4000 bytes.

Ejemplo:
--varchar2(longitud_maxima)
nombre varchar2(20);

/*Indica que puede almacenar valores alfanumericos de hasta 20 posiciones.*/
/*Cuando la longitud de los datos sea menor a 20 no se rellenará con blancos*/

nvarchar2(n): Cadena de caracteres de longitud variable, donde n es el número de caractes a almacenar. Acumula valores alfanuméricos de longitud variable con posibilidad de cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE.

char(n): Análogo al varcahr2 pero guarda cadenas de longitud fija, siempre ocupará lo mismo,independientemente del valor que contenga, donde n es el número de caracteres a almacenar, si no se especifica su valor por defecto es 1. Si se introduce un valor de 10 caracteres en un campo de char(100), se rellenará con espacions las 90 posiciones restantes.
En PL/SQL el valor máximo del tamaño de una variable de este tipo es de 32767 bytes, sin embargo la base de datos Oracle permiten columnas de hasta 2000 bytes. Si se intenta introducit un valor demasiado grande para el campo, se intentará los espacios finales, y si se cabe sin espacios, se introduce. Si aún así no cabe se retorna un error.

Ejemplo:
--char(longitud_maxima)
nombre char2(20);

/*Indica que puede almacenar valores alfanumericos de hasta 20 posiciones.*/
/*Cuando la longitud de los datos sea menor a 20 se rellenará con blancos*/


nchar(n): Almacena un valor alfanumérico de longitud fija con posibilidad de cambio de juego de caracteres, donde n es el número de caractes a almacenar. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE. Almacena hasta 32767 bytes en PLSQL y hasta 2000 bytes en Oracle 8i/9i.

long: Este tipo similar al varchar2, se trata de una cadena de longitud variable de hasta 32760 bytes. Los tipos de dato long de una base de datos Oracle son capaces de almacenar hasta 2 Gb. Este tipo de dato está obsoleto (en desuso). En Oracle8 y siguientes versiones se deben usar los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datos alfanuméricos.
No se puede almacenar en clausulas WHERE, GROUP BY, ORDER BY, CONNECT BY ni DISTINCT.
Un tabla solo puede contener una columna de tipo long. Sólo soporta acceso secuencial.


En general usando varchar2 ahorramos espacio en comparación del uso de char
Un char (10) almacenará 'Pepe '
Un varchar2 (10) almacenará 'Pepe'


0 comentarios: