39 lines
906 B
SQL
39 lines
906 B
SQL
SET SERVEROUTPUT ON;
|
|
|
|
CREATE OR REPLACE FUNCTION obtenerTrabajadoresJob(empJob emp.job%type) RETURN INT
|
|
IS
|
|
CURSOR jobEmps IS SELECT empno, ename FROM emp WHERE job=empJob;
|
|
counter INT := 0;
|
|
empId emp.empno%type;
|
|
empName emp.ename%type;
|
|
BEGIN
|
|
OPEN jobEmps;
|
|
LOOP
|
|
FETCH jobEmps INTO empId, empName;
|
|
EXIT WHEN jobEmps%notfound;
|
|
dbms_output.put_line(empId || ' ' || empName);
|
|
counter := counter + 1;
|
|
END LOOP;
|
|
CLOSE jobEmps;
|
|
IF counter = 0 THEN
|
|
RAISE NO_DATA_FOUND;
|
|
END IF;
|
|
RETURN counter;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
dbms_output.put_line('No existe ese valor para puesto en la tabla EMP.');
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
DECLARE
|
|
cnt INT;
|
|
BEGIN
|
|
cnt := obtenerTrabajadoresJob('MANAGER');
|
|
dbms_output.put_line(cnt);
|
|
|
|
cnt := obtenerTrabajadoresJob('SYSTEM');
|
|
dbms_output.put_line(cnt);
|
|
END;
|
|
/
|