Cuando creamos tablas,
cada columna debe tener asignado un tipo de dato, que determina la naturaleza
de los datos que pueden ser insertados en la columna. Estos tipos de datos
también son utilizados para especificar argumentos en Funciones y Store Procedures.
Cuando se selecciona un tipo de dato usted debe considera el dato que desea
almacenar y que operaciones va a realizar sobre él. El espacio también debe ser
considerado: algunos tipos de datos son de longitud fija, tomando el mismo
número de bytes sin importar que datos está almacenado actualmente. Otros son
variables. Si una columna de este tipo no es poblada Oracle no da espacio en
absoluto para este campo. Si posteriormente actualiza la fila para rellenar la
columna, la fila se hará más grande, no importa si el tipo de datos es de
longitud fija o variable.
Tipos de Datos
Alfanumérico.
- VARCHAR2. Dato carácter de longitud variable. De un 1 byte a 4Kb. Los datos son almacenados con el juego de caracteres de la base de datos.
- NVARCHAR2. Como el VARCHAR2, pero los datos son almacenados en un juego de caracteres de lenguaje nacional alternativo, uno de los juegos de caracteres permitidos Unicode.
- CHAR. Dato carácter de longitud fija de un 1 byte a 2 Kb, se almacena con el juego de caracteres de la base de datos. Si el dato almacenado no tiene la longitud de la columna, entonces será rellanado con espacios.
Datos Binarios.
- RAW. Dato binario de longitud variable, de 1 byte a 4 Kb. A diferencia de los tipos CHAR y VARCHAR2, RAW no es convertido mediante Oracle Net del juego de caracteres de la base de datos al juego de caracteres del proceso usuario.
Datos Numéricos
- NUMBER. Dato numérico, para el cual es posible especificar precisión y escala. La precisión puede variar de 1 a 38, la escala puede variar de -84 a 127.
- FLOAT. Este es un tipo de dato ANSI, numero de punto flotante con precisión de 126 binario o 38 decimal. Oracle también provee BINARY_FLOAT y BINARY_DOUBLE como alternativas.
- INTEGER. Equivalente a NUMBER pero con escala 0.
Datos Fecha
- DATE. Este es cero de longitud, si la columna está vacía, o 7 bytes. Todos los datos DATE incluyen: siglo, año, mes, día, hora, minuto y segundos. El rango valido es de 1 Enero de 4712 BC a 31 Diciembre de 9999 AD.
- TIMESTAMP. Es longitud cero si la columna está vacía o hasta 11 bytes, dependiendo de la precisión especificada. Similar a DATE, pero con precisión de 9 decimales para los segundos, 6 es por defecto.
- TIMESTAMP WITH TIMEZONE. Como TIMESTAMP, pero los datos se almacenan en un registro guardando la zona horaria a la que se refiere. La longitud puede ser de hasta 13 bytes, dependiendo de la precisión. Este tipo de datos de Oracle permite determinar la diferencia entre dos tiempos mediante la normalización de ellos a UTC, incluso si los tiempos son para diferentes zonas de horarias.
- TIMESTAMP WITH LOCAL TIMEZONE. Como TIMESTAMP, pero los datos son normalizados a la zona horaria de la base de datos. Cuando son recuperados, son normalizados a la zona horaria de proceso usuario.
- INTERVAL YEAR TO MONTH. Se utiliza para la grabación de un periodo en años y meses entre dos DATE o TIMESTAMP.
- INTERVAL DAY TO SECOND. Se utiliza para la grabación de un período en días y segundos entre dos DATE o TIMESTAMP.
Tipos de Datos
- CLOB. Dato carácter almacenado con el juego de caracteres de la base de datos. Su tamaño ilimitado. 4GB multiplicado por el tamaño de Block de la Base de Datos.
- NCLOB. Como CLOB, pero los datos son almacenados en un Juego de caracteres alternativo, uno de los permitidos es UNICODE.
- BLOB. Como CLOB, pero con datos binarios, que no serán convertidos por Oracle Net.
- BFILE. Es un localizador que apunta a un archivo almacenado en el sistema operativo del servidor de base de datos. El tamaño de los archivos está limitado a 4 GB.
- LONG. Datos de Carácter almacenado con el juego de caracteres de la base de datos, de hasta 2 GB. Toda la funcionalidad de LONG (y más) es proporcionado por CLOB; LONG no debería ser utilizado en bases de datos modernas, y si su base de datos tiene alguna columna de este tipo se debe convertir a CLOB. Sólo puede haber una columna LONG en una tabla.
- LONG RAW como LONG, pero con datos binarios que no se pueden convertir por Oracle Net. Cualquier columna LONG RAW deben ser convertidos a BLOB.
Tipo de Dato ROWID
- ROWID. Un valor codificado en base 64 que es el puntero a la ubicación de una fila de una tabla. Cifrada. Dentro de él, es la dirección física exacta. ROWID es un tipo de datos propietario de Oracle, no es visible a menos que específicamente seleccionados.
El tipo VARCHAR2 debe ser cualificado con un número indicando la
longitud máxima de la columna. Si un valor es insertado en la columna y es
menor que esta. Esto no es un problema. El valor tomara el espacio necesario.
Si el valor es más grande que el máximo. El INSERT fallara. Si el valor es
actualizado a un valor más corto o más largo, la columna cambiara acorde a
esto. Si no es ingresado un valor en absoluto o es actualizado a NULL. Entonces
la columna no tomara ningún espacio.
El tipo de dato NUMBER puede ser opcionalmente cualificado con
Precisión y Escala. La precisión establece el número máximo de dígitos en el
número. Y la escala es cuántos de estos dígitos están a la derecha del punto
decimal. Si la escala es negativa, esto tiene el efecto de remplazar los
últimos dígitos de cualquier número insertado con ceros. Que no cuentan para el
número de dígitos especificado por la precisión. Si el número de dígitos excede
la precisión, habrá un error, y si es dentro de la precisión, pero fuera de la
escala, se redondeará al número (arriba o abajo) hasta el valor más cercano
dentro de la escala.
El tipo de dato fecha siempre incluye Siglo, Año, Mes, Día, Hora,
Minuto y Segundo. Incluso sino todos los elementos son especificados en el
momento de la inserción. Año, Mes y Día deben ser especificados; si Hora,
Minuto y Segundo no son especificados por defecto se establece a media
noche. Utilizando la función TRUNC sobre
una fecha tiene el efecto de establecer la Hora, Minuto y Segundo a medianoche.
Oracle provee funciones para convertir datos en varios tipos y en
algunas circunstancias realizar la conversión automáticamente.
Comentarios
Publicar un comentario