La depuración de código es una habilidad esencial para cualquier programador. En PL/SQL, la depuración implica identificar y corregir errores en el código para asegurar que funcione según lo esperado. En esta sección, aprenderás diversas técnicas y herramientas para depurar tu código PL/SQL de manera efectiva.
Contenido
Introducción a la Depuración
La depuración es el proceso de encontrar y resolver errores en el código. En PL/SQL, los errores pueden ser de sintaxis, lógicos o de tiempo de ejecución. La depuración efectiva te permite identificar rápidamente la causa de los problemas y corregirlos.
Tipos de Errores
Errores de Sintaxis
Estos errores ocurren cuando el código no sigue las reglas del lenguaje PL/SQL. Son detectados por el compilador y generalmente son fáciles de corregir.
Ejemplo:
Error: Falta el punto y coma (;) después de put_line.
Errores Lógicos
Estos errores ocurren cuando el código no produce el resultado esperado debido a una lógica incorrecta.
Ejemplo:
DECLARE
    num1 NUMBER := 10;
    num2 NUMBER := 0;
    result NUMBER;
BEGIN
    result := num1 / num2;
    dbms_output.put_line('Resultado: ' || result);
END;Error: División por cero.
Errores de Tiempo de Ejecución
Estos errores ocurren mientras el programa se está ejecutando y pueden ser causados por condiciones inesperadas.
Ejemplo:
DECLARE
    my_cursor SYS_REFCURSOR;
    my_var NUMBER;
BEGIN
    OPEN my_cursor FOR SELECT 1 FROM dual;
    FETCH my_cursor INTO my_var;
    CLOSE my_cursor;
    dbms_output.put_line('Valor: ' || my_var);
END;Error: Intentar usar una variable no inicializada.
Métodos de Depuración
Uso de DBMS_OUTPUT
El paquete DBMS_OUTPUT se utiliza para imprimir mensajes en la consola, lo que puede ayudarte a entender el flujo de tu programa y los valores de las variables.
Ejemplo:
DECLARE
    num1 NUMBER := 10;
    num2 NUMBER := 5;
    result NUMBER;
BEGIN
    result := num1 + num2;
    dbms_output.put_line('Resultado: ' || result);
END;Uso de DBMS_DEBUG
El paquete DBMS_DEBUG proporciona una interfaz para depurar programas PL/SQL. Permite establecer puntos de interrupción, inspeccionar variables y controlar la ejecución del programa.
Ejemplo:
Depuración en Oracle SQL Developer
Oracle SQL Developer ofrece una interfaz gráfica para depurar código PL/SQL. Puedes establecer puntos de interrupción, inspeccionar variables y ejecutar el código paso a paso.
Pasos:
- Abre Oracle SQL Developer.
 - Carga tu script PL/SQL.
 - Establece puntos de interrupción haciendo clic en el margen izquierdo del editor.
 - Ejecuta el script en modo de depuración.
 - Usa las herramientas de depuración para inspeccionar variables y controlar la ejecución.
 
Ejercicios Prácticos
Ejercicio 1: Depuración con DBMS_OUTPUT
Instrucciones:
- Escribe un bloque PL/SQL que calcule el factorial de un número.
 - Usa 
DBMS_OUTPUTpara imprimir el valor de la variable en cada iteración del bucle. 
Código:
DECLARE
    num NUMBER := 5;
    factorial NUMBER := 1;
BEGIN
    FOR i IN 1..num LOOP
        factorial := factorial * i;
        dbms_output.put_line('Factorial de ' || i || ' es ' || factorial);
    END LOOP;
END;Ejercicio 2: Depuración en Oracle SQL Developer
Instrucciones:
- Crea un procedimiento almacenado que acepte un número y devuelva su cuadrado.
 - Establece puntos de interrupción y depura el procedimiento en Oracle SQL Developer.
 
Código:
CREATE OR REPLACE PROCEDURE calculate_square (p_num IN NUMBER, p_square OUT NUMBER) IS
BEGIN
    p_square := p_num * p_num;
END;Conclusión
La depuración es una parte crucial del desarrollo de software. En PL/SQL, puedes utilizar herramientas como DBMS_OUTPUT, DBMS_DEBUG y Oracle SQL Developer para identificar y corregir errores en tu código. Practicar estas técnicas te ayudará a mejorar tus habilidades de depuración y a escribir código más robusto y eficiente.
Con esto concluye la sección sobre depuración de código PL/SQL. En la siguiente sección, exploraremos técnicas de perfilado y ajuste para optimizar el rendimiento de tu código 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
 
