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;