Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2010, 03:53
muchy
 
Fecha de Ingreso: febrero-2008
Mensajes: 10
Antigüedad: 16 años, 2 meses
Puntos: 0
funcion que devuelva un array ó un tipo record

Buenos días a todos estoy intentando crear una función que me devuelva un array pero a la hora de tratarlo en el procedimiento o paquete no me está funcionando de un modo correcto. Gracias de antemano a tod@s.
FUNCTION CALCULA_VUELO (P_VUELO VARCHAR2,P_SEPARADOR VARCHAR2 DEFAULT ',') RETURN MAR_ARRAY_TYPE IS
/* DECLARACION DEL ARRAY DONDE QUEREMOS INTRODUCIR LOS VALORES */
RESULTADO_DEVUELTO MAR_ARRAY_TYPE:=MAR_ARRAY_TYPE();
/* STRINGS CON LOS QUE MANEJAMOS LA CADENA INICIAL */
R_VUELO VARCHAR(20);
DEFINI VARCHAR(20);
V_ELEMENT VARCHAR(4);
BEGIN
R_STRING:=P_STRING;
LOOP

DEFINI:= instr(R_VUELO,P_SEPARADOR );
EXIT WHEN (NVL(DEFINI,0)=0);
RESULTADO_DEVUELTO.EXTEND;
RESULTADO_DEVUELTO(RESULTADO_DEVUELTO.COUNT):=LTRI M(RTRIM(SUBSTR(R_VUELO,1,DEFINI-1)));
R_VUELO:= SUBSTR(R_VUELO,DEFINI+LENGTH(P_SEPARADOR));
V_ELEMENT:= RESULTADO_DEVUELTO(RESULTADO_DEVUELTO.COUNT);
END LOOP;
/* SI TODAVIA QUEDA EL ULTIMO ELEMENTO */
IF LENGTH(R_VUELO) > 0 THEN
RESULTADO_DEVUELTO.EXTEND;
RESULTADO_DEVUELTO(RESULTADO_DEVUELTO.COUNT):=R_VU ELO;
END IF;
RETURN RESULTADO_DEVUELTO;
EXCEPTION WHEN OTHERS THEN RETURN RESULTADO_DEVUELTO;
END CALCULA_VUELO;


esta es la función que me he definido como prueba pero quiero saber cuando la llame dentro del procedimiento cómo recuperar los valores y como pasar el vuelo como parámetro.