Introducción
En este tema, aprenderás la sintaxis básica de PL/SQL, el lenguaje de programación de Oracle que combina las capacidades de SQL con las características de un lenguaje de programación procedimental. Este conocimiento es fundamental para escribir y entender bloques de código PL/SQL.
Estructura de un Bloque PL/SQL
Un bloque PL/SQL se compone de tres secciones principales:
- Declaración: Aquí se declaran las variables, constantes, cursores y otros elementos necesarios.
- Ejecución: Contiene las sentencias de código que realizan las operaciones deseadas.
- Manejo de Excepciones: Sección opcional donde se manejan los errores que puedan ocurrir durante la ejecución.
Ejemplo de un Bloque PL/SQL
DECLARE -- Sección de Declaración v_salario NUMBER(7,2); v_nombre VARCHAR2(50); BEGIN -- Sección de Ejecución SELECT salario, nombre INTO v_salario, v_nombre FROM empleados WHERE empleado_id = 1001; DBMS_OUTPUT.PUT_LINE('Nombre: ' || v_nombre || ', Salario: ' || v_salario); EXCEPTION -- Sección de Manejo de Excepciones WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No se encontró el empleado.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Ocurrió un error: ' || SQLERRM); END; /
Explicación del Ejemplo
- DECLARE: Se declaran dos variables
v_salario
yv_nombre
. - BEGIN: Inicia la sección de ejecución.
- SELECT INTO: Recupera el salario y nombre del empleado con
empleado_id
1001 y los almacena en las variables declaradas. - DBMS_OUTPUT.PUT_LINE: Imprime el nombre y salario del empleado.
- SELECT INTO: Recupera el salario y nombre del empleado con
- EXCEPTION: Maneja las excepciones.
- WHEN NO_DATA_FOUND: Imprime un mensaje si no se encuentra el empleado.
- WHEN OTHERS: Captura cualquier otro error y lo imprime.
Tipos de Datos Comunes
En PL/SQL, es importante conocer los tipos de datos que puedes utilizar. Aquí hay una tabla con algunos de los tipos de datos más comunes:
Tipo de Dato | Descripción |
---|---|
NUMBER(p,s) |
Número con precisión p y escala s . |
VARCHAR2(n) |
Cadena de caracteres de longitud variable, hasta n caracteres. |
DATE |
Fecha y hora. |
BOOLEAN |
Valor lógico (TRUE, FALSE, NULL). |
CLOB |
Cadena de caracteres de longitud grande. |
Comentarios en PL/SQL
Los comentarios son esenciales para hacer que tu código sea legible y mantenible. PL/SQL soporta dos tipos de comentarios:
- Comentarios de una sola línea: Usando
--
- Comentarios de múltiples líneas: Usando
/* ... */
Ejemplo de Comentarios
DECLARE v_salario NUMBER(7,2); -- Variable para almacenar el salario v_nombre VARCHAR2(50); /* Variable para almacenar el nombre del empleado */ BEGIN -- Recupera el salario y nombre del empleado SELECT salario, nombre INTO v_salario, v_nombre FROM empleados WHERE empleado_id = 1001; DBMS_OUTPUT.PUT_LINE('Nombre: ' || v_nombre || ', Salario: ' || v_salario); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No se encontró el empleado.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Ocurrió un error: ' || SQLERRM); END; /
Ejercicio Práctico
Ejercicio 1
Escribe un bloque PL/SQL que declare una variable para almacenar el nombre de un departamento y luego imprima ese nombre. Si el departamento no se encuentra, debe manejar la excepción adecuadamente.
Solución
DECLARE v_dept_nombre VARCHAR2(50); BEGIN SELECT nombre INTO v_dept_nombre FROM departamentos WHERE dept_id = 10; DBMS_OUTPUT.PUT_LINE('Nombre del Departamento: ' || v_dept_nombre); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No se encontró el departamento.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Ocurrió un error: ' || SQLERRM); END; /
Explicación de la Solución
- DECLARE: Se declara la variable
v_dept_nombre
. - BEGIN: Inicia la sección de ejecución.
- SELECT INTO: Recupera el nombre del departamento con
dept_id
10 y lo almacena en la variablev_dept_nombre
. - DBMS_OUTPUT.PUT_LINE: Imprime el nombre del departamento.
- SELECT INTO: Recupera el nombre del departamento con
- EXCEPTION: Maneja las excepciones.
- WHEN NO_DATA_FOUND: Imprime un mensaje si no se encuentra el departamento.
- WHEN OTHERS: Captura cualquier otro error y lo imprime.
Conclusión
En esta sección, has aprendido la estructura básica de un bloque PL/SQL, los tipos de datos comunes y cómo escribir comentarios. También has visto ejemplos prácticos y realizado un ejercicio para reforzar tu comprensión. Con este conocimiento, estás listo para avanzar a temas más complejos en PL/SQL.
Curso de PL/SQL
Módulo 1: Introducción a PL/SQL
Módulo 2: Fundamentos de PL/SQL
- Estructura del Bloque PL/SQL
- Variables y Tipos de Datos
- Estructuras de Control
- Cursores
- Manejo de Excepciones