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

Como definir una cadena en más de un renglón

Estas en el tema de Como definir una cadena en más de un renglón en el foro de Mysql en Foros del Web. Buenas tardes a todos los foristas. No tengo mucha experiencia con MySQL, hasta ahora he trabajado con SQL Server 2000 y 2005, pero ahora la ...
  #1 (permalink)  
Antiguo 15/12/2010, 15:34
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Pregunta Como definir una cadena en más de un renglón

Buenas tardes a todos los foristas.

No tengo mucha experiencia con MySQL, hasta ahora he trabajado con SQL Server 2000 y 2005, pero ahora la empresa donde trabajo ha decidido hacer la migración hacia MySQL 5.0

Estoy comenzando a trabajar con la migración de algunos procedimientos almacenados de SQL Server 2005 a MySQL, pero tengo algunos problemas. En SQL Server por ejemplo puedo hacer algo como esto

Código SQL:
Ver original
  1. CREATE PROCEDURE [PRUEBAS].[USP_EJEMPLO]   
  2. AS
  3.   DECLARE @SQL VARCHAR(6000)
  4.   SET @SQL = '
  5.     declare @Tabla table (id int)
  6.     insert into @Tabla values (1)
  7.     select * from @Tabla'
  8.     EXEC (@SQL)

Al ejecutar el procedimiento me regresa esto

Código:
id
-----
1
Ahora quiero hacer lo mismo pero con MySQL, intenté hacer algo como esto:

Código MySQL:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS `pruebas`.`USP_EJEMPLO`$$
  3.  
  4. CREATE PROCEDURE `pruebas`.`USP_EJEMPLO`
  5. ()  
  6.   SET @SQL = '
  7.     create temporary table Tabla (id int);
  8.     insert into Tabla values (1);
  9.     select * from Tabla;';
  10.  
  11.   PREPARE stmt FROM @sql;
  12.   EXECUTE stmt;
  13.   DEALLOCATE PREPARE stmt;
  14.  
  15. END$$
  16.  
  17. DELIMITER ;

Sin embargo me está marcando el siguiente error:

Código:
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
	insert into Tabla values (1);
	select * from Tabla' at line 1
(0 ms taken)
Según yo el error está en el punto y coma después de la creación de la tabla temporal por lo que me imagino que no permite ejecutar múltiples instrucciones de esta manera.

Mi pregunta es si hay alguna manera de hacer algo como lo que estoy tratando de hacer o si tengo algún error en el código que estoy poniendo

De antemano muchas gracias por el apoyo
Jack.

Etiquetas: migración, prepare, server, sql, procedimiento, almacenar
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 13:48.