Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Funciones con cursores en PL/SQL

Estas en el tema de Funciones con cursores en PL/SQL en el foro de Oracle en Foros del Web. Hola soy Liz... soy nueva en el foro y desearia q me ayudaran a resolver un ejercicio en el q tengo q crear una funcion ...
  #1 (permalink)  
Antiguo 10/11/2011, 09:58
 
Fecha de Ingreso: noviembre-2011
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
Sonrisa Funciones con cursores en PL/SQL

Hola soy Liz... soy nueva en el foro y desearia q me ayudaran a resolver un ejercicio en el q tengo q crear una funcion q calcule el monto de pago de un cliente, considerando los paquetes y numeros de canales, manejando cursores, la funcion recibe como parametro el codigo de contrato

El ejercicio en donde estan las tablas es sobre una empresa de television pagada...
  #2 (permalink)  
Antiguo 04/01/2012, 16:11
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
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 :-)

Etiquetas: pl-sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:30.