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

Ejecutar SQL preparado dentro de stored procedure

Estas en el tema de Ejecutar SQL preparado dentro de stored procedure en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/03/2017, 08:14
 
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
  #2 (permalink)  
Antiguo 11/03/2017, 10:38
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Ejecutar SQL preparado dentro de stored procedure

Saludo

A ver, viendo lo que posteaste, la que debe funcionar en efecto es la primera consulta.

Ahora bien, tengo estos enunciados.

1. ¿al llamar el sp desde mysql directamente, trae el dato correctamente?
2. ¿cómo se está realizando el llamado desde php?
3. ¿el sp que publicaste es solo un ejemplo? Quiero decir, lo del pow lo puedes
usar directamente en php con la función pow, aligerando la carga a la bd.

Ojo, ten en cuenta que al guardar el resultado del sp en una variable de salida,
luego del sp se debe realizar la selección de dicha variable
(Tanto en mysql cómo en php).
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: php, procedure, select, sql, stored
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 19:03.