Qué tal Luis:
Si deseas utilizar una función, recuerda que debes retornar un valor. También lo puedes hacer a través de un procedimiento.
Te pongo un ejemplo muy simple de como utilizar un cursor dentro de un procedimiento almacenado.
Código SQL:
Ver originalCREATE OR REPLACE PROCEDURE InfoEmpleados(
p_Trabajo EMP.job%TYPE
)
AS
CURSOR c_Empleado IS SELECT deptno, ename, sal
FROM EMP
WHERE job = UPPER(p_Trabajo)
ORDER BY deptno;
BEGIN
FOR v_Empleado IN c_Empleado
LOOP
DBMS_OUTPUT.PUT_LINE('DEPTNO: ' || v_Empleado.deptno || ', NOMBRE: ' || v_Empleado.ename || ', SALARIO: ' || v_Empleado.sal);
END LOOP;
END;
/
Básicamente como parámetro recibe el tipo de trabajo (job) que realiza el empleado y en base a eso, muestra a todos los empleados que tienen ese trabajo.
Para ejecutar el procedimiento:
Código SQL:
Ver originalSET SERVEROUTPUT ON
BEGIN
InfoEmpleados('SALESMAN');
END;
/
Saludos.