Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROCEDIMIENTOS
Construcción de procedimientos almacenados en los cuales se tienen en cuenta parámetros de
entrada, bloques SQL al interior de la zona de ejecución (delimitada por las palabras reservadas
BEGIN y END) y uso de variables referenciadas de columna (%TYPE).
ASPECTOS GENERALES
Los bloques nominados (entre ellos los procedimientos almacenados) se almacenan en la base de
datos, y pueden ser invocados directamente desde otros bloques.
El manejo de un procedimiento (en PL/SQL constituye un objeto que se almacena en la base de datos)
incluye varios pasos: codificación del programa que crea el procedimiento, ejecución del programa que
crea el procedimiento, ejecución del procedimiento creado (almacenado en la base de datos).
La codificación del programa puede seguir cualquiera de los esquemas mostrados posteriormente,
dependiendo de los elementos requeridos en su construcción: cursores, estructuras de control,
sentencias SQL (SELECT, UPDATE o INSERT) y tipos PL/SQL.
Debemos especificar el tipo de datos de cada parámetro. Al especificar el tipo de dato del
parámetro no debemos especificar la longitud del tipo.
EJEMPLO 1:
BEGIN
V_x := x + y;
END;
2
Ejecución del procedimiento almacenado
Una vez se ha ejecutado el programa que crea el procedimiento y éste se encuentra como objeto en la
base de datos (exitosamente, sino lo fue corregir primero el código), puede ser ejecutado desde la
línea de comandos o invocado desde el interior de otro bloque. En este caso se ejecutará desde la
línea de comandos, es decir que ahora si se ejecutaran las líneas de la sección ejecutable (BEGIN…
END).
EXECUTE sumar1(5,3)
EJERCICIO
Crear un procedimiento pl/sql que muestra los números desde el 1 hasta el valor pasado
como parámetro
EJEMPLO 2:
BEGIN
SELECT nombres, apellidos
INTO v_nombres, v_apellidos
FROM Estudiantes
WHERE codigo = p_codigo;
INSERT INTO Promedios VALUES(p_codigo, v_nombres,v_apellidos, null);
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO No_existe VALUES(p_codigo);
DBMS_OUTPUT.PUT_LINE('no existe ' || p_codigo);
END;
3
3. Ejecutar el procedimiento creado enviándole el parámetro
EXECUTE p_ejemplo1(10000);
6. Ejecutar el procedimiento creado enviándole el parámetro del código que usted utilizó
para sus datos.
EXECUTE p_ejemplo1(27649);
7. Dado que el código existe, consultar la tabla Promedios y se observará que ………