Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Twitter Pulse para guardar enlace y compartir esta web. Ayuda para Oracle en Facebook Pulse para guardar enlace y compartir esta web. Búscanos en Google+ Pulse para guardar enlace y compartir esta web Pulse para generar codigo QR del enlace y compartir esta web

Tipos de datos (datatypes)

Para obtener la definición de datos de una tabla podemos ejecutar:

SELECT  COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE
FROM COLS
WHERE TABLE_NAME = 'T_PEDIDOS';

En la definición de las columnas de las tablas podemos usar los siguientes tipos de datos:

CHAR(n)

Cadena de caracteres de longitud fija, tiene un tamaño n bytes.

Si no se especifica n la ORACLE le da un tamaño de 255 bytes.

El tamaño máximo en BD es 2000 bytes y el mínimo 1 byte.

El tamaño máximo en PL/SQL es 32767 bytes y el minimo 1 byte.

CHARACTER es sinonimo de CHAR. Ver NCHAR.

VARCHAR2(n)

Cadena de caracteres de longitud variable, tiene un tamaño máximo de n bytes.

Es obligatorio especificar el tamaño.

El tamaño máximo en BD es 4000 bytes y el mínimo 1 byte.

El tamaño máximo en PL/SQL es 32767 bytes y el minimo 1 byte.

STRING y VARCHAR son sinonimos de VARCHAR2. Ver NVARCHAR2.

Usando VARCHAR2 en lugar de CHAR ahorramos espacio de almamcenamiento.


	Un char(10) almacenará     'PEPE      '
	Un varchar2(10) almacenará 'PEPE'

En contra tiene que si se escriben muchas veces hay que hacer un mayor esfuerzo de matenimiento del sistema para mantener la eficiencia (compactar).

NUMBER(p,s)

Número de p digitos de los cuales s son decimales.

No es obligatorio especificar el tamaño.

El tamaño de p va de 1 a 38 y el s desde -84 a 127.

El tamaño en PL/SQL 1E-130 .. 10E125.

Sinonimos: El valor 7,456,123.89 se almacenará como:

NUMBER(9)     7456124 
NUMBER(9,1)   7456123.9
NUMBER(*,1)   7456123.9    
NUMBER(9,2)   7456123.89 
NUMBER(6)    [error] 
NUMBER(7,-2)  7456100 
NUMBER        7456123.89 
FLOAT         7456123.89 
FLOAT(12)     7456000.0

DATE

Fecha válida.

Desde el 1 de enero del 4712 AC hasta el 31 de diciembre del 9999 DC. (en Oracle7 = 4712 DC)

LONG

Cadena de caracteres de longitud variable. Es una versión más grande de VARCHAR2.

El tamaño máximo en BD es 2 Gigabytes.

CLOB

Cadena de caracteres de longitud variable. Es una versión más grande de VARCHAR2.

El tamaño máximo en BD es 4 Gigabytes. Ver NCLOB.

Es recomendable usar CLOB o BLOB en lugar de LONG.

BLOB

Objeto binario de longitud variable. Es una versión más grande de RAW.

El tamaño máximo en BD es 4 Gigabytes.

BFILE

Puntero a un fichero en disco.

El tamaño máximo en BD es 4 Gigabytes.

TIMESTAMP (f)

El timestamp es un fecha que contiene un granularidad superior al tipo DATE, eso significa que contiene fracciones de segundo.

Con f definimos el numero de digitos que queremos en la fracción de segundo. Asi, f puedes valer desde 0 hasta 9, el valor por defecto es 6.


SELECT SYSTIMESTAMP FROM DUAL;

Podemos usar WITH {LOCAL} TIMEZONE para grabar con el desplazamiento de hora local.

INTERVAL YEAR (y) TO MONTH

Periodo de tiempo definido en años y meses donde y es el número de digitos del año. Puede valer de 0 a 9. (por defecto = 2)

INTERVAL DAY (d) TO SECOND (f)

Es un periodo de tiempo definido en dias, horas, minutos y segundos. d es el máximo numero de digitos en el dia f es el máximo numero de digitos en el campo de segundos. d va de 0 a 9. (por defecto = 2) fva de 0 a 9. (por defecto = 6)

ROWID

Cadena hexadecimal que representa de forma única una fila en una tabla (pero no unica en cualquier tabla). Ver función ROWID.

UROWID

Cadena hexadecimal que representa de forma única una fila ORDENADA en una tabla (pero no unica en cualquier tabla). Ver función ROWID.

RAW(n)

Objeto binario de longitud variable.

Es obligatorio especificar el tamaño.

El tamaño máximo en BD es 2000 bytes y el mínimo 1 byte.

El tamaño máximo en PL/SQL es 32767 bytes y el minimo 1 byte.

LONG RAW

Objeto binario de longitud variable.

El tamaño máximo en BD es 2 Gigabytes.

El tamaño máximo en PL/SQL es 32767 bytes y el minimo 1 byte.