En este capítulo veremos cómo declarar variables y constantes en PL/SQL. Una variable no es más que un nombre que damos a una pequeña sección de la memoria en la que queremos almacenar temporalmente un dato o información para su posterior uso, para ello contamos con una sección específica en el cuerpo del programa, en un tutorial anterior dijimos que era la parte de declaraciones (DECLARE).
Cómo declarar variables en PL/SQL
En el siguiente ejemplo mostraremos como hacemos la declaración de variables, declararemos cuatro variables con cuatro tipos de datos diferentes:
- Lv_nombre_empleado VARCHAR2(55); usada para guardar cadenas de caracteres
- lv_edad_empleado NUMBER(2); usada para guardar un valor numérico
- lv_fecha_contratacion DATE; la usaremos para guardar la fecha de contratación de un empleado
- lv_empleado_actual BOOLEAN; Acá indicaremos si es actualmente empleado o no, admite solo los valores verdadero o falso (TRUE o FALSE)
lv_nombre_empleado VARCHAR2(55);
lv_edad_empleado NUMBER(2);
lv_fecha_contratacion DATE;
lv_empleado_actual BOOLEAN;
BEGIN
NULL;
END;
Salida:
Statement processed.
Cómo inicializar variables en PL/SQL
En el anterior ejemplo declaramos tres variables pero no tienen ningún valor, su valor actual en nulo (NULL), aunque podemos inicializarla después del inicio (BEGIN) asignándoles valores de esta manera:
lv_nombre_empleado VARCHAR2(55);
lv_edad_empleado NUMBER(2);
lv_fecha_contratacion DATE;
lv_empleado_actual BOOLEAN;
BEGIN
lv_nombre_empleado:= 'Juan Andrés Gonzalez';
lv_edad_empleado:= 22;
lv_fecha_contratacion:= 'may-22-2020';
lv_empleado_actual:= TRUE;
END;
Salida:
Statement processed.
Acá podrán observar que también es posible asignar valores a las variables directamente en la sección de declaración (DECLARE), el siguiente ejemplo es a nivel funcional exactamente igual al anterior con la diferencia que le vamos a asignar los mismos valores en la sección de declaraciones:
lv_nombre_empleado VARCHAR2(55):= 'Juan Andrés Gonzalez';
lv_edad_empleado NUMBER(2):= 22;
lv_fecha_contratacion DATE:= 'may-22-2020';
lv_empleado_actual BOOLEAN:= TRUE;
BEGIN
NULL;
END;
Salida:
Statement processed.
Cómo declarar constantes en PL/SQL
Declarar una constante es similar a la declaración de variables, pero debemos añadir la palabra reservada CONSTANT e inmediatamente asignar el valor, luego de esto no se podrá asignar nuevamente un valor a esta constante
En el siguiente ejemplo usaremos el mismo programa con el que venimos trabajando pero añadiremos un dato que jamás cambiará al cual llamaremos lv_horas_diarias_trabajadas y obligatoriamente asignamos un valor:
lv_nombre_empleado VARCHAR2(55):= 'Juan Andrés Gonzalez';
lv_edad_empleado NUMBER(2):= 22;
lv_fecha_contratacion DATE:= 'may-22-2020';
lv_empleado_actual BOOLEAN:= TRUE;
lv_horas_diarias_trabajadas CONSTANT NUMBER(2):= 8;
BEGIN
NULL;
END;
Salida:
Statement processed.
Noten que si tratamos de asignar otro valor a la constante lv_horas_diarias_trabajadas cuando ejecutemos el programa, este nos dará un error:
lv_nombre_empleado VARCHAR2(55):= 'Juan Andrés Gonzalez';
lv_edad_empleado NUMBER(2):= 22;
lv_fecha_contratacion DATE:= 'may-22-2020';
lv_empleado_actual BOOLEAN:= TRUE;
Lv_horas_diarias_trabajadas CONSTANT NUMBER(2):= 8;
BEGIN
--tratamos de cambiar el valor de la constante y nos da un error
Lv_horas_diarias_trabajadas:= 9;
END;
Salida:
ORA-06550: line 8, column 5:
PLS-00363: expression 'LV_HORAS_DIARIAS_TRABAJADAS' cannot be used as an assignment target
ORA-06550: line 8, column 5:
PL/SQL: Statement ignored
Statement processed.