varios resultados en una funcion.

Desco
02 de Septiembre del 2005
Hola,
alguien sabe si es posible devolver varios valores en una funcion, y que estos esten almacenados en un vector de enteros?..


Por ejemplo :
Tenemos al funcion declarada en un paquete como

FUNCTION Prueba () return TResultado;

cuando Tresultado es del siguiente tipo :

type Tresultado table of number
index by binary_integer;

Como se recupera dicha informacion ?

Gracias,
Desco.


Rodolfo Reyes
02 de Septiembre del 2005
Nunca lo he hecho con un Vector.

Pero si con un Ref Cursor

Un ejemplo (lo estoy escribiendo de memoria asi que podria tener algunos errores):

CREATE OR REPLACE PACKAGE Prueba As
TYPE tc_Prueba IS REF CURSOR;

FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba;

END Prueba;

CREATE OR REPLACE PACKAGE BODY Prueba As
FUNCTION Buscar(aDato IN VARCHAR2)
RETURN tc_Prueba
IS
v_Registros tc_Prueba;
BEGIN
OPEN v_Registros FOR SELECT *
FROM MyTable
WHERE ID = aDato;
RETURN(v_Registros);
END Buscar;