Capítulo 2 - Fundamentos PL/SQL

PL/SQL es un lenguaje basado en SQL, por lo cual, si haz usado anteriormente sentencias DML de SQL(select, insert, update, delete) se te hará sencillo entender PL/SQL.

Bloques de código

PL/SQL extiende SQL al nivel de manejar variables, condiciones, estructuras de control. El código en PL/SQL debe estar dentro de un bloque de código en el cual se especifican las instrucciones o código.

El bloque se define mediante las palabras reservadas BEGIN y END las cuales deben estar en una línea de texto independiente y la palabra END debe finalizar en un ;(punto y coma.). El código debe estar dentro del bloque:

BEGIN
DBMS_OUTPUT.PUT_LINE('HOLA MUNDO :P');
END;
Para que se pueda visualizar el mensaje se debe habilitar una Salida DBMS a nuestra conexión actual. Para saber cómo habilitarlo, puedes dirigirte al Capítulo 1 - Preparación sección SALIDA DBMS EN SQLDEVELOPER.

En el ejemplo anterior se hace uso de la procedimiento DBMS_OUTPUT.PUT_LINE para imprimir un mensaje de salida. De la misma manera podemos imprimir el resultado de una operación matemática:

BEGIN
DBMS_OUTPUT.PUT_LINE(3+5);
END;

Realmente es sencillo, pero hasta el momento un poco inútil. Conforme vayas avanzando en el tutorial se irán agregando más cosas.

Variables

Ahora haremos uso de variables en nuestros bloques de código, para declarar una variable debemos adicionar la palabra reservada DECLARE antes de BEGIN. Las variables son declaradas entre DECLARE y BEGIN:

DECLARE
mi_variable VARCHAR2(200);
BEGIN
mi_variable := 'Hola mundo';
DBMS_OUTPUT.PUT_LINE(mi_variable);
END;

En el ejemplo anterior hemos declarado la variable mi_variable con el tipo de dato VARCHAR2, lo cual en Oracle corresponde a una variable que almacena texto. Finalmente a mi_variable le asignamos el texto 'Hola mundo' dentro del cuerpo del bloque(línea 4), pero la primera asignación de valor a una variable se puede realizar en la sección DECLARE:

DECLARE
mi_variable VARCHAR2(200)  := 'Hola mundo';
BEGIN
DBMS_OUTPUT.PUT_LINE(mi_variable);
END;

En la línea 4 se puede ver que se usa el operador :=(dos puntos y un igual) para asignar el texto 'Hola mundo' a nuestra variable. El operador de asignación sirve para la asignación de constante a variable o de variable a variable.

Tipos de datos

En PL/SQL se pueden utilizar los mismos tipos de datos usados para la declaración de las columnas con la sentencia CREATE TABLE.

Para fines específicos de éste tutorial, sólo se especificarán los tipos de datos que más usaremos.

Numéricos

 

Tipos de dato en Oracle
TipoAlmacenaRango
PLS_INTEGEREntero con signo

 -2,147,483,648

a

 2,147,483,647

NATURALEntero PLS_INTEGER no negativo 
NUMBERNúmeros de coma flotante. Se debe especificar la presición1e-130 a 1.0e126

Texto

 

Tipos de dato para caracteres en Oracle
TipoAlmacenaRango
CHARCadena de texto de tamaño fijo.32,767 bytes
VARCHAR2Cadena de texto de tamaño variable.32,767 bytes
NCHARCadena de texto de tamaño fijo. Incluye caracteres UNICODE.32,767 bytes
NVARCHAR2Cadena de texto de tamaño variable. Incluye caracteres UNICODE.32,767 bytes

 

Lógicos

 

Tipos de dato para valores lógicos en Oracle
TipoAlmacenaRango
BOOLEANAlmacena valores lógicos. Incluye el valor NULOTRUE, FALSE o NULL

 

Fecha y hora

 

Tipos de dato para tiempo en Oracle
TipoAlmacenaRango
DATEFechas fijas, incluye incluye año, mes, día, horas, minutos y segundos

01/01/1,4712 BC

a

31/12/9999

TIMESTAMPExtiende el tipo DATE, incluye año, mes, día, horas, minutos y segundos fraccionados. 
TIMESTAMP WITH TIME ZONEExtiende el tipo de dato TIMESTAMP adicionando una zona horaria 

Conclusiones

El manejo de variables es muy sencillo, aunque el hecho de que deben ser declaradas antes de ser usadas resulte incomo para algunos. Los tipos de datos son muy amplios en Oracle, sólo se han presentado los más utilizados.

Tipo de Recurso: