Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/01/2012, 16:11
Avatar de stone_neo
stone_neo
 
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Respuesta: Funciones con cursores en PL/SQL

Hola Liz bienvenida al foro, pues mira si desees que te ayudemos primero seria bueno que coloques el codigo de tu Funcion en PL/SQL y nos digas en donde tienes error o dudas para poder guiarte.

Si lo que necesitas es un ejemplo de codigo sobre lo que deseas, aqui te dejo uno

Código:
CREATE OR REPLACE FUNCTION "MOVSYS"."FN_CORREOS_X_PERFIL"(P_DE_PERF VARCHAR)
RETURN VARCHAR
AS
    V_EMAILS   VARCHAR(1000);
    V_ID_PERF  INT;
    V_ID_GROUP INT;
    V_DE_EMAIL VARCHAR(500);

    CURSOR C_PERF IS
           SELECT R.GROUP_ID,E.E_MAIL
             FROM MOVSYS.EXECUTOR_GROUP_RELATIONS R
            INNER JOIN MOVSYS.EXECUTORS E ON R.EXECUTOR_ID = E.ID;
BEGIN
    V_EMAILS := '';
    SELECT E.ID INTO V_ID_PERF FROM MOVSYS.EXECUTORS E WHERE E.NAME = P_DE_PERF;

    OPEN C_PERF;
    LOOP
        FETCH C_PERF INTO V_ID_GROUP, V_DE_EMAIL;
        EXIT WHEN C_PERF%NOTFOUND;

        IF V_ID_GROUP = V_ID_PERF THEN
            IF V_DE_EMAIL != '' THEN
                V_EMAILS := V_EMAILS || V_DE_EMAIL || ',';
            END IF;
        END IF;

    END LOOP;
    CLOSE C_PERF;

    RETURN V_EMAILS;
END;
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)