Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/12/2014, 02:45
Luis_CPP
 
Fecha de Ingreso: junio-2013
Mensajes: 7
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Meter cursor dentro de una funcion

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 original
  1. CREATE OR REPLACE PROCEDURE InfoEmpleados(
  2.     p_Trabajo       EMP.job%TYPE
  3. )
  4. AS
  5.     CURSOR c_Empleado IS SELECT deptno, ename, sal
  6.                          FROM EMP
  7.                          WHERE job = UPPER(p_Trabajo)
  8.                          ORDER BY deptno;
  9. BEGIN
  10.     FOR v_Empleado IN c_Empleado
  11.     LOOP
  12.         DBMS_OUTPUT.PUT_LINE('DEPTNO: ' || v_Empleado.deptno || ', NOMBRE: ' || v_Empleado.ename || ', SALARIO: ' || v_Empleado.sal);
  13.     END LOOP;
  14. END;
  15. /

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 original
  1. SET SERVEROUTPUT ON
  2.  
  3. BEGIN
  4.     InfoEmpleados('SALESMAN');
  5. END;
  6. /

Saludos.