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:

  1. Declaración: Aquí se declaran las variables, constantes, cursores y otros elementos necesarios.
  2. Ejecución: Contiene las sentencias de código que realizan las operaciones deseadas.
  3. 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 y v_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.
  • 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 variable v_dept_nombre.
    • DBMS_OUTPUT.PUT_LINE: Imprime el nombre del departamento.
  • 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.

© Copyright 2024. Todos los derechos reservados