M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL T9

De wikiserver
Dreceres ràpides: navegació, cerca

Solución 9: Creación y Uso de Procedimientos Almacenados

En esta práctica, modificará scripts existentes para crear y utilizar procedimientos almacenados.

1) A partir de l'exercici 4 del tema2:

   DECLARE
     v_today DATE:=SYSDATE;
     v_tomorrow v_today%TYPE;
   BEGIN
     v_tomorrow:=v_today +1;
     DBMS_OUTPUT.PUT_LINE(' Hello World ');
     DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
     DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);
   END;
a) Modifique el script para convertir el bloque anónimo en un procedimiento denominado greet. (Indicación: elimine también el comando SET SERVEROUTPUT ON).
CREATE PROCEDURE greet IS
    v_today DATE:=SYSDATE;
    V_tomorrow v_today%TYPE;
BEGIN
     v_tomorrow:=v_today +1;
     DBMS_OUTPUT.PUT_LINE(' Hello World ');
     DBMS_OUTPUT.PUT_LINE('TODAY IS : '|| v_today);
     DBMS_OUTPUT.PUT_LINE('TOMORROW IS : ' || v_tomorrow);
END;
b) Ejecute el script para crear el procedimiento. La salida resultante debe ser como la siguiente:
Creación y Uso de Procedimientos Almacenados
c) Guarde este script como lab_09_01_soln.sql.
d) Haga clic en el botón Clear para limpiar el espacio de trabajo.
e) Cree y ejecute un bloque anónimo para llamar al procedimiento greet. (Indicación: asegúrese de activar SERVEROUTPUT al principio del bloque).
  SET SERVEROUTPUT ON
  BEGIN
    greet;
  END;

La salida debe ser similar a la siguiente:

Creación y Uso de Procedimientos Almacenados

2) Modifique el script lab_09_01_soln.sql de la siguiente forma:

a) Borre el procedimiento greet emitiendo el siguiente comando:
  DROP PROCEDURE greet;
b) Modifique el procedimiento para aceptar un argumento de tipo VARCHAR2.

Llame al argumento p_name.

 CREATE PROCEDURE greet(p_name VARCHAR2) IS
    v_today DATE:=SYSDATE;
    V_tomorrow today%TYPE;
c) Imprima Hello <name> en lugar de Hello World.
  BEGIN
    v_tomorrow:=v_today +1;
    DBMS_OUTPUT.PUT_LINE(' Hello '|| p_name);
    ...
d) Guarde el script como lab_09_02_soln.sql.
e) Ejecute el script para crear el procedimiento. La salida resultante debe ser como la siguiente:
Creación y Uso de Procedimientos Almacenados
f) Cree y ejecute un bloque anónimo para llamar al procedimiento greet con un valor de parámetro. El bloque también debe producir la salida.
  SET SERVEROUTPUT ON;
  BEGIN
    greet('Nancy');
  END;

La salida de ejemplo debe ser similar a la siguiente:

Creación y Uso de Procedimientos Almacenados