Retornar varios registros usando un Stored Procedure de Oracle 8i

Larry Lucena
14 de Julio del 2003
Hola al foro...estamos desarrollando una aplicación con una arquitectura multicapas donde se requiere ejecutar desde componentes COM consultas sobre una Base de Datos Oracle 8i. Lo más importante de estas consultas es que deben realizarse utilizando Stored Procedures (o functions) que puedan retornar más de 1 registro (Recorsets). De qué manera es posible realizar esta consulta???, Existe algun tipo de variable que el Stored Procedure o Function pueda retornar con los registros consultados???. Agradezco la ayuda que puedan prestarnos en este sentido...Gracias

noe040367
14 de Julio del 2003
Me parece que no se puede. Pero si te dice alguien como, avísame.
Un saludo.

jacortes
14 de Julio del 2003
Por supuesto que se puede. "REF CURSOR" es el tipo de dato en cuestión. Échale un vistazo a http://asktom.oracle.com/.

Un Saludo.

Henryke
14 de Julio del 2003
Ejemplo:


PACKAGE nombre_pk IS
--para retorna un tipo basico
TYPE cur_aaa IS REF CURSOR RETURN {varchar2, number etc};

--para retorna un tipo particular
TYPE rec_aaa IS RECORD (...)
TYPE cur_aaa IS REF CURSOR RETURN rec_aaa;

--para retornar registro del mismo tipo de una tabla
TYPE cur_aaa IS REF CURSOR RETURN nombre_tabla%rowtype;

--o un cursor generico, adopta la estructura en ejecuciòn
TYPE cur_aaa IS REF CURSOR

FUNCTION fn_nombre (.....) RETURN cur_aaa;

--o

FUNCTION fn_nombre (.....) RETURN cur_aaa;

PROCEDURE pr_nombre(..., out cursor_aaa cur_aaa);

END nombre_pk;