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

Retornar un tipo cursor en un Stored Procedure

Estas en el tema de Retornar un tipo cursor en un Stored Procedure en el foro de Mysql en Foros del Web. Hola a todos.... Mi consulta es ¿Hay alguna forma de retornar un tipo CURSOR en un Procedimiento Almacenado? Para posteriormente manipularlo desde Java u otro ...
  #1 (permalink)  
Antiguo 02/10/2009, 18:35
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Retornar un tipo cursor en un Stored Procedure

Hola a todos....
Mi consulta es ¿Hay alguna forma de retornar un tipo CURSOR en un Procedimiento Almacenado? Para posteriormente manipularlo desde Java u otro lenguaje.

La idea que pretendia es: Crear un procedimiento almacenado que tenga un parametro de salida (OUT) este de tipo CURSOR, este cursor se encargaria de almacenar el resultado de una consulta SELECT, dentro del procedimiento almacenado.

Una idea del codigo es la siguiente:

DELIMITER $$

DROP PROCEDURE IF EXISTS `agenda`.`procedure_select` $$
CREATE PROCEDURE `agenda`.`procedure_select` (OUT cur1 CURSOR)
BEGIN

DECLARE cur1 CURSOR FOR SELECT *FROM actividades;
OPEN cur1;

END $$

DELIMITER ;
  #2 (permalink)  
Antiguo 02/10/2009, 20:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Retornar un tipo cursor en un Stored Procedure

En realidad no, porque el CURSOR no es un tipo de dato.
Un cursor es nada más que un puntero a una tabla de una consulta que está definida en su declaración. Pero la consulta y su tabla resultado mueren al terminar el SP, por lo que mal podría permanecer existiendo un puntero a una estructura que no existe más. ¿No te parece?

En los hechos, lo que hace es lo mismo que tomar la tabla resultado y recorrerla con un loop del tipo For/Next. Por ello carece de utilidad fuera de la estructura de un SP; los lenguajes de programación ya cuentan con métodos para hacer lo mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/10/2009, 14:19
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: Retornar un tipo cursor en un Stored Procedure

gnzsoloyo tiene razón en utilizar métodos de java en tu caso para manipular la información.

Sin embargo, el hecho de que mysql no permita retornar cursores, no quiere decir que no sean utiles. (No se si la versión 6 ya lo permite)
Postgresql y oracle permiten tener cursores como parametro de entrada de funciones o también como retorno.

saluddos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 28/10/2010, 10:28
 
Fecha de Ingreso: octubre-2010
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Retornar un tipo cursor en un Stored Procedure

Hola, entiendo bien el punto de que MySQL no permita regresar cursores pero que alternativa se tiene para poder guardar en la BD una consulta la cual pueda ser leída por un programa y que el código de esta consulta (y su futuras modificaciones) sean transparentes para dicho programa?
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 14:34.