domingo, 11 de julio de 2010

Laboratorio #2 - Cursores

EJERCICIOS:

Con los datos que se encuentran de departamentos y el total del salario


SET SERVEROUTPUT ON;

SET VERIFY OFF;

DECLARE

CURSOR cursEjemplo IS

SELECT d.department_name, SUM(e.salary) AS empleados

FROM departments d join employees e USING (department_id)

GROUP BY d.department_name;

v_nombre departments.department_name%TYPE;

v_poblacion employees.salary%TYPE;

BEGIN

OPEN cursEjemplo;

LOOP

FETCH cursEjemplo INTO v_nombre, v_poblacion;

EXIT WHEN cursEjemplo %NOTFOUND;

DBMS_OUTPUT.PUT_LINE(v_nombre || ',' || v_poblacion);

END LOOP;

CLOSE cursEjemplo;

END;


Los empleados que sean de la region de EUROPE y si el salario es >6000 poner sueldo medio, <6000>10000 sueldo alto


SET SERVEROUTPUT ON;

SET VERIFY OFF;

DECLARE

CURSOR cursReg IS

SELECT e.first_name,e.salary

from employees e , regions r,departments d, locations l, countries c

WHERE r.region_id=c.region_id and c.country_id=l.country_id and l.location_id=d.location_id and e.department_id=d.department_id

and region_name='Europe';

v_salario EMPLOYEES.salary%TYPE;

v_nombre EMPLOYEES.first_name%TYPE;

BEGIN

OPEN cursReg;

LOOP

FETCH cursReg INTO v_nombre,v_salario;

EXIT WHEN cursReg %NOTFOUND;

IF (v_salario <6000)>

DBMS_OUTPUT.PUT_LINE('Nombre empleado: '||v_nombre||' Salario Bajo: ' ||v_salario);

ELSIF (v_salario <10000)>

DBMS_OUTPUT.PUT_LINE('Nombre empleado: '||v_nombre||' Salario Medio: ' ||v_salario);

ELSE

DBMS_OUTPUT.PUT_LINE(' Nombre empleado: '||v_nombre||' Salario Alto: ' ||v_salario);

END IF;

END LOOP;

CLOSE cursReg;

END;

No hay comentarios:

Publicar un comentario