En cualquier lenguaje de programación, las variables y las constantes tienen un tipo de dato asignado (bien sea explícitamente o implícitamente). Dependiendo del tipo de dato el lenguaje de programación sabrá la estructura que utilizará para su almacenamiento, las restricciones en los valores que puede aceptar, la precisión del mismo, etc.
En PL/SQL contamos con todos los tipos de datos simples utilizados en SQL y algunos más. En este apartado vamos a enumerar los más utilizados.
Numéricos
- BINARY_INTEGER: Tipo de dato numérico cuyo rango es de -2147483647 .. 2147483647. PL/SQL además define algunos subtipos de éste: NATURAL, NATURALN, POSITIVE, POSITIVEN, SIGNTYPE.
- NUMBER: Tipo de dato numérico para almacenar números racionales. Podemos especificar su escala (-84 .. 127) y su precisión (1 .. 38). La escala indica cuándo se redondea y hacia dónde. Ejemplos. escala=2: 8.234 -> 8.23, escala=-3: 7689 -> 8000. PL/SQL también define algunos subtipos como: DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INTEGER, INT, NUMERIC, REAL, SMALLINT.
- PLS_INTEGER: Tipo de datos numérico cuyo rango es el mismo que el del tipo de dato BINARY_INTEGER, pero que su representación es distinta por lo que las operaciones aritméticas llevadas a cabo con los mismos serán más eficientes que en los dos casos anteriores.
Alfanuméricos
- CHAR(n): Array de n caracteres, máximo 2000 bytes. Si no especificamos longitud sería 1.
- LONG: Array de caracteres con un máximo de 32760 bytes.
- RAW: Array de bytes con un número máximo de 2000.
- LONG RAW: Array de bytes con un máximo de 32760.
- VARCHAR2: Tipo de dato para almacenar cadenas de longitud variable con un máximo de 32760.
Grandes objetos
- BFILE: Puntero a un fichero del Sistema Operativo.
- BLOB: Objeto binario con una capacidad de 4 GB.
- CLOB: Objeto carácter con una capacidad de 2 GB.
Otros.
- BOOLEAN: TRUE/FALSE.
- DATE: Tipo de dato para almacenar valores día/hora desde el 1 enero de 4712 a.c. hasta el 31 diciembre de 4712 d.c.
- %TYPE: Se utiliza para declarar una variable de acuerdo a una columna de la Base de Datos o a otra variable ya declarada. Una de sus ventajas principales es que se evitan errores causados por la falta de coincidencia del tipo de dato.