ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PL/SQL Laboratorio 2: CURSORES y EXCEPCIONES


Enviado por   •  30 de Noviembre de 2020  •  Apuntes  •  810 Palabras (4 Páginas)  •  415 Visitas

Página 1 de 4

UTFSM – Sede Viña del Mar

PL/SQL                                                                

Laboratorio 2: CURSORES y EXCEPCIONES

OBJETIVOS:

Acercar al alumno a la práctica del manejo de cursores y algunas excepciones.

EJERCICIOS

Utilizando SqlDeveloper:

  1. Escriba el siguiente código para PL/SQL y comente que hace. Explique por que está generando una excepción.

DECLARE
          v_nomemp VARCHAR2(50);
BEGIN
         SELECT nom_emp
         INTO v_nomemp
         FROM empleado
    WHERE cod_supervisor = 7839;
     dbms_output.put_line('La lectura del cursor es: ' || v_nomemp);
EXCEPTION

WHEN TOO_MANY_ROWS THEN

dbms_output.put_line ( ‘MUCHAS FILAS’);
end;

  1. Reescriba el código de forma que muestre lo que se solicita.
  1. Escriba un bloque anónimo para seleccionar el nombre de los empleados cuyo supervisor tiene cod_supervisor igual a 7368. Si revisa la tabla empleado, no existe ningún empleado, por lo tanto utilice NO_DATA_FOUND para enviar un mensaje.
  1. Muestre los nombres de los departamentos con código de departamento distinto  a 10 implementando un cursor. Declare una variable que utilice %ROWTYPE para definir su tipo. Utilíce el atributo %FOUND del cursor para condicionar mostrar el nombre del departamento sino que salga del bloque.
  1. Muestre el código del empleado, nombre del empleado y departamento al cual pertenece implementando un cursor. Defina las variables utilizando %TYPE.  Para la iteración ocupe LOOP, EXIT WHEN con %NOTFOUND y END LOOP. Además debe indicar el total de registros afectados (%ROWCOUNT)

Resultado esperado:

CODIGO NOMBRE       DEPTO

7839   Karla          Finanzas

7566   Juan P.        Desarrollo

7902   Fabián         Desarrollo

7369   Juan           Desarrollo

7698   Blanca         Ventas

7499   Allen          Ventas

….

Total de registros: XX

  1. Haga  el ejercicio anterior con WHILE – LOOP

  1. Haga el ejercicio anterior con FOR – LOOP. Ver el uso de %ROWCOUNT.
  1. El siguiente código debe ser depurado. Depúrelo e indique porque aparece la excepción de cursor inválido.

SET SERVEROUTPUT ON;

DECLARE
CURSOR c_sueldo
IS
SELECT *
 FROM sueldo;

Reg_sueldo  sueldo%TYPE;
 
BEGIN
  FETCH c_sueldo INTO reg_sueldo;

   DBMS_OUTPUT.PUT_LINE(  ‘CODIGO’ || ‘ ‘ || ‘MINIMO’ || ‘       ‘ || ‘MAXIMO’);

...

Descargar como (para miembros actualizados)  txt (4.6 Kb)   pdf (69.1 Kb)   docx (11.5 Kb)  
Leer 3 páginas más »
Disponible sólo en Clubensayos.com