You are on page 1of 5

Escuela Politeé cnica de Ejeé rcito

Nombre: Nicolas Ortiz , Aldo Mena


Fecha: 04-12-2018

Lab 6.0 Manejo de Cursores

Tiempo Estimado : 40 minutos

Objetivo de Aprendizaje:

• En esta actividad de laboratorio, los alumnos realizarán programas pl/sql basados en cursores

Descripción / Caso:

• Utilice Internet como herramienta principal


• Utilice información de cursos anteriores y conocimientos adquiridos en clase.

Tareas a realizar:

Paso 1 Ubicación de recursos

a. Forme grupos de máximo dos personas

Paso 2 Planteamiento de Problema

1. Crear una nueva tabla para almacenar información de nombres y salarios de los empleados

CREATE TABLE demoemployees


AS
SELECT *
FROM employees;
ALTER TABLE demoemployees
2. Crear un pl/sql que determine el top n del salario de los empleados
a. Solicitar por teclado el valor n que represente el top de los salarios
b. Mediante el uso de cursores en la tabla employees busque el top n de
salarios
c. Guarde los nombres y los salarios top en la nueva tabla creada

CREATE TABLE empleados


AS
SELECT *
FROM employees;
ALTER TABLE empleados
ADD (stars VARCHAR2(50));

set serveroutput on;


accept nuevo number prompt 'Ingrese el número de resultados: '
DECLARE
CURSOR salario IS
SELECT *
FROM (select employee_id,first_name,last_name,salary from
employees ORDER BY
salary desc)employees
WHERE rownum <= &nuevo
ORDER BY rownum;
ident EMPLOYEES.EMPLOYEE_ID%TYPE;
nombre EMPLOYEES.FIRST_NAME%TYPE;
apellido EMPLOYEES.LAST_NAME%TYPE;
sueldo EMPLOYEES.SALARY%TYPE;
BEGIN
OPEN salario;
Loop
FETCH salario INTO ident,nombre,apellido,sueldo;
insert into empleados
(EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY)
values(ident,nombre,apellido,sueldo);
DBMS_OUTPUT.PUT_LINE(ident||' '||nombre||' '||apellido||' '||
sueldo);
exit when
salario%NOTFOUND;
end loop;
CLOSE salario;
END;
/
3. Crear un pl/sql que realice lo siguiente:
a. Utilizando cursores verifique el salario de todos los empleados
b. Si el salario del empleado es menor a $2000 enviar el mensaje siguiente por ejemplo
“El empleado SCOTT necesita aumento de sueldo”
c. Si el salario del empleado está entre $2001 y $3000 enviar el mensaje siguiente por
ejemplo “El empleado SCOTT tiene un sueldo aceptable”
d. Si el salario del empleado es mayor a $3001 enviar el mensaje siguiente por ejemplo
“El empleado SCOTT no necesita aumento de sueldo”

set serveroutput on;


declare
cursor emp_cursor is
select last_name, first_name, salary
from employees;
apellido employees.last_name%type;
nombre employees.first_name%type;
salario employees.salary%type;
mensaje varchar(100):= 'nnmms';
begin
open emp_cursor;
loop
fetch emp_cursor into apellido, nombre, salario;
exit when emp_cursor%notfound;
mensaje:= case
when salario <= 2000 then 'El empleado ' ||apellido|| ' ' ||
nombre || ' necesita aumento de sueldo'
when salario > 2000 and salario <= 3000 then 'El empleado '
||apellido|| ' ' || nombre || ' tiene un sueldo aceptable'
when salario > 3000 then 'El empleado ' ||apellido|| ' ' ||
nombre || ' no necesita aumento de sueldo'
end;
DBMS_output.put_line(mensaje);
end loop;
end;

Paso 3 Entrega de Trabajos

a. Cada grupo tendrá un mínimo de 40 minutos para exponer el sustento de su investigación,


posteriormente se realizará un debate entre todos los grupos participantes

Bases de Datos II– Ing. Paué l Díéaz Z. Paé gina 1

You might also like