Saltar la navegación

2.2.- Tipos de datos simples, variables y constantes.

Cero coma uno.
ITE (Uso educativo nc)



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. Si se define un NUMBER(6,2) estamos indicando que son 6 dígitos numéricos de los cuales 2 son decimales. 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. Ocupa en memoria n caracteres.
  • 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(n): Tipo de dato para almacenar cadenas de longitud variable con un máximo de 32760. Ocupa en memoria hasta n caracteres.

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.

Hemos visto los tipos de datos simples más usuales. Los tipos de datos compuestos los dejaremos para posteriores apartados.

Atributo %TYPE.

Las variables PL/SQL se suelen declarar para sostener y manipular los datos almacenados en una Base de Datos. Cuando declares variables PL/SQL para guardar los valores de columnas, debes asegurarte de que la variable tenga la precisión (tamaño) y el tipo de dato correcto. Si no es así se puede producir un error durante la ejecución.

Cuando se utiliza el atributo %TYPE para declarar una variable  estamos indicando que tiene el mismo tipo de datos que la variable especificada. Normalmente se relaciona con una columna de la BD indicando el nombre de la tabla de base de datos y el nombre de la columna. Si se hace referencia a una variable declarada anteriormente, se indicará el nombre de la variable previamente declarada a la variable por declarar.

Una ventaja del uso de este atributo, es que si cambia la definición de una columna de la BD, no será necesario cambiar la declaración de la variable.

Ejemplos:

DECLARE

                  nombre_oficina oficinas.nombre%type; -- la variable nombre_oficina tomará el mismo tipo de dato que la columna nombre de  la tabla oficinas

                  vx number(5,2); -- Variable numérica de 5 dígitos, dos de los cuales son decimales

                  vy vx%type; -- la variable vy tomará el mismo tipo de dato que tenga la variable vx

Hemos visto los tipos de datos simples más usuales. Los tipos de datos compuestos los dejaremos para posteriores apartados.

Un puntero o apuntador es una variable que referencia una región de memoria; en otras palabras es una variable cuyo valor es una dirección de memoria.

Para saber más

En el siguiente enlace podrás ampliar información sobre los tipos de datos de los que disponemos en PL/SQL.

Tipos de datos en PL/SQL.

Autoevaluación

Pregunta

En PL/SQL cuando vamos a trabajar con enteros es preferible utilizar el tipo de dato BINARY_INTEGER, en vez de PLS_INTEGER.

Respuestas

Verdadero.

Falso.

Retroalimentación