Las variables se declaran en la sección DECLARE del programa principal, o bien, al principio de la declaración de un procedimiento o función. La sintaxis para la declaración es la siguiente.
nombre_variable [CONSTANT] tipo_dato [NOT NULL] [:= expresionPL] ;
- nombre_variable – Es el nombre que le queremos dar a la variable. Se recomiendan que empiecen por l_ (de local) o v_ (de variable) para que luego en la programación sea más sencillo distinguir una variable de, por ejemplo, un campo de una tabla.
- [CONSTANT] – Lo usaremos en el caso que nuestra variable sea una constante, es decir, que tendrá siempre el mismo valor.
tipo_dato – Será el tipo de variable que es. Entre los tipos más usados encontramos:
- NUMBER – Un número. Podemos especificar el número de dígitos del número especificándolo entre paréntesis de la siguiente forma: NUMBER(longitud)
- VARCHAR2 – Una cadena de caracteres. Al igual que el anterior, se puede especificar su longitud entre paréntesis:VARCHAR2(50)
- CHAR – Un caracter. Ejemplos: ‘A’, ‘R’
- DATE – Una fecha
- BOOLEAN – Una variable de verdad que sólo puede tomar los valores ‘true’ o ‘false’.
- DECIMAL – Un número con decimales.
- FLOAT – Un número largo con decimales.
- tabla.campo%TYPE – Toma el tipo de campo junto con el resto de características (longitud, nulidad, etc.) del campo que le especifiquemos de la tabla que queramos. De esta forma nos ahorraremos tener que poner el tipo de la variable nosotros mismos, evitándonos errores y más facilidad en caso de que cambien algún parámetro del campo como pueda ser la longitud, ya que no deberemos de modificar el código.
- [NOT NULL] – Lo pondremos si el valor de la variable no puede ser nulo.
- [:= expresionPL] – Si le queremos asignar un valor inicial a la variable, lo deberemos de hacer aquí, despues de los dos puntos y el igual (:=). Si queremos asignarle el valor de un parámetro de entrada al programa, le asignaremos := &num_de_parametro. Por ejemplo, si queremos asignarle el valor del primer parámetro que le hemos pasado, deberemos poner: variable TIPO := &1
Variables Globales
Las variables globales pueden ser referenciadas desde cualquier punto del programa. Se pueden crear, modificar y eliminar, siendo esto último optativo pero recomendable para liberar espacio en memoria.
Para crearlas tenemos dos opciones. La primera es asignarle directamente un valor de la siguiente forma :GLOBAL.nombre := valor. La primera vez que lo hagamos, ésta se creará automáticamente. La segunda forma es usando esta built-in: Default_value(‘nombre’, valor);. Para modificarlas, se hará de la misma forma.
Para eliminarlas deberemos usar ERASE(‘nombre’).