Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2017, 08:14
matake
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 11 años, 6 meses
Puntos: 10
Ejecutar SQL preparado dentro de stored procedure

Hola,

Necesito Ejecutar SQL dinamico dentro de procedimiento almacenado pero no funciona.
He mirado por todos los lados y nada por todos los lados hay la misma respuesta: usar PREPARE -> EXECUTE -> DEALLOCATE

Puse tres ejemplos abajo (aclarar que he probado cada uno por separado no todos juntos como estan puestos para simplificar)

Código MySQL:
Ver original
  1.   OUT salida VARCHAR(32)
  2. )
  3.  
  4.   /*Esto funciona bien devuelve 4 */
  5.   SELECT pow(2,2) INTO salida;
  6.  
  7.   /*Este NO funciona. Si le pongo prefijo @ a la variable salida  */
  8.   SELECT pow(2,2) INTO @salida;
  9.  
  10.   /*Este NO funciona (con o sin @ delante de la variable salida)*/
  11.   PREPARE stmt FROM 'SELECT pow(2,2) INTO salida';
  12.   EXECUTE stmt;
  13.   DEALLOCATE PREPARE stmt;

Aclarar que tengo mysql5.7.9 , php5.6.16 y que my_sp() lo llamo desde php con PDO;

Gracias