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

Problema con función utilizando cursores, solo devuelve un registro

Estas en el tema de Problema con función utilizando cursores, solo devuelve un registro en el foro de Oracle en Foros del Web. Buena Tarde Estoy trabajando con Oracle 10g express edition tratando de crear una función que me devuelva los registros de una tabla, estoy utilizando un ...
  #1 (permalink)  
Antiguo 30/10/2012, 15:41
Avatar de carlosnrv  
Fecha de Ingreso: octubre-2012
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 0
Problema con función utilizando cursores, solo devuelve un registro

Buena Tarde

Estoy trabajando con Oracle 10g express edition tratando de crear una función que me devuelva los registros de una tabla, estoy utilizando un cursor, mi problema es que la función creada solo me devuelve un registro y en la tabla que se realiza la consulta existen varios registros.
Serian tan amables de ayudarme a resolver mi problema.
Este es el código que ocupo:

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION fn_registrosconsulta
  2. RETURN varchar2
  3. IS
  4. v_consulta NUMBER;
  5. v_descripcion varchar2(50);
  6. CURSOR CONSULTA1
  7. IS
  8. SELECT id_consulta, descripcion_consulta FROM consulta ORDER BY id_consulta ASC;
  9.  BEGIN
  10. OPEN consulta1;
  11. LOOP
  12.   fetch consulta1 INTO v_consulta,v_descripcion;
  13.   exit WHEN consulta1%notfound;        
  14.   RETURN (v_consulta||v_descripcion);
  15. END LOOP;
  16. CLOSE consulta1;
  17. END;

Última edición por gnzsoloyo; 31/10/2012 a las 04:17 Razón: Condigo sin etiquetar
  #2 (permalink)  
Antiguo 30/10/2012, 15:55
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con función utilizando cursores, solo devuelve un registro

Creo que es ese return el que te saca del loop.
Que quieres hacer con el resultado de esa consulta?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 30/10/2012, 16:05
Avatar de carlosnrv  
Fecha de Ingreso: octubre-2012
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con función utilizando cursores, solo devuelve un registro

Necesito mostrar todos los registros de la tabla para un reporte.

Última edición por carlosnrv; 30/10/2012 a las 16:22
  #4 (permalink)  
Antiguo 30/10/2012, 17:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con función utilizando cursores, solo devuelve un registro

Te tocaria retornar el cursor y recorrerlo desde la aplicacion que uses.
Por que no utilizas directamente la consulta? para que procedimiento?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 31/10/2012, 01:33
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Problema con función utilizando cursores, solo devuelve un registro

Para retornar todo el resultado del cursor, puedes usar un TYPE. Lo cargas enteramente con el cursor :

LOOP

VOY CARGANDO EL TYPE

END LOOP

RETORNO EL TYPE

Etiquetas: cursor, pl-sql, return
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 09:32.