Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/02/2015, 16:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Como consumir resultado de un procedimiento almacenado desde otro en Mysql

Vamos por parte:
- Las tablas TEMPORARY no sirven para hacer tareas entre SP, porque cada SP se ejecuta en un segmento de subproceso diferente, y las tablas de ese tipo solo existen en el que las crea.
- No puedes transferir bloques de datos entre SP en forma paramétrica, porque MySQL no tiene tipos de datos TABLE, ARRAY o RECORD. Esos tipos existen en otros DBMS, pero no en MySQL.
- Una solución funcional en MySQL sería crear tablas de tipo MEMORY (ENGINE=MEMORY), pero el resultado es incierto, porque si bien la estructura persiste, los datos se pierden entre conexiones.
- Otra solución, poco performante, es que generes una iteración con un CURSOR en el primero, y uses los datos obtenidos para realizar llamadas al segundo SP, un registro a la vez.

El link que te pongo era porque si en el primer SP usabas esa forma, con la clausula PROCEDURE, el segundo Sp tomaría como datos de entrada el resultado de esa select, para procesarlos, No lo he probado, por lo que no estoy seguro del resultado final, pero es un camino a analizar.

Finalmente, la duda principal es: ¿Ese segundo SP se usa desde multiples SP, o sólo será invocado desde este?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)