varios resultados en una funcion.
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.
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.
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;
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;
