MySQL Forums
Forum List  »  Spanish

problema con script de transact sql a mysql
Posted by: jon alarcon
Date: March 16, 2015 03:55AM

buenas a todos:

os adjuntare un código que tengo en transact-sql y lo quiero meter en un mysql.
se agradecería la ayuda para poder solventar este error.
delimiter //
create procedure sp_buscar_palabra_tablas (concepto varchar(20))
/* Procedimiento que busca el contenido del parámetro de entrada
-- concepto en el campo Nombre de todas las tablas de la BD. Como
-- resultado crea una tabla temporal #resultado con las coincidencias
-- (nombre, ruta).*/
begin
-- Comprobamos si existe la tabla temporal.
IF OBJECT_ID('tempdb..#resultado') IS NOT NULL
then
/*Si existe la borramos.*/
select 'La tabla #resultado existe, la borramos';
DROP TABLE #resultado
END;
-- Creamos la tabla temporal para almacenar los resultados
CREATE TEMPORARY TABLE #resultado (nombre varchar(20), ruta varchar(500)) ;
-- Declaramos la variable que va a guardar los nombres de las tablas.
-- existentes en la BD.
DECLARE vtable_name nvarchar(128);
-- Declaramos la variable que va a almacenar nuestra select dinámica para
-- informar la tabla temporal con los resultados.
DECLARE sql nvarchar(1000);
-- Declaramos el curso con el que vamos a recorrer la vista del sistema
-- INFORMATION_SCHEMA.TABLES para obtener los nombres de las tablas de nuestra
-- BD.
DECLARE c_tables CURSOR FOR
select table_name
from INFORMATION_SCHEMA.TABLES
order by table_name;
-- Abrimos el cursor.
OPEN c_tables;
-- Realizamos el primer fetch y almacenamos el nombre de la
-- primera tabla leida.
FETCH NEXT FROM c_tables
INTO @vtable_name;
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
-- Informamos la variable @sql con la insert dinámica para almacenar
-- en nuestra tabla temporal las coincidencias.
SET @sql='INSERT INTO #resultado select * from ' + @vtable_name + ' where nombre like ' + CHAR(39) + '%' + @concepto + '%' + char(39)
-- Ejecutamos nuestra sentencia dinámica.
EXEC sp_executesql @sql
-- Siguiente Fecth para recorrer el cursor.
FETCH NEXT FROM c_tables
INTO @vtable_name;
END
-- Hemos termiando de reccorrer el cursor, lo cerramos el cursor.
CLOSE c_tables;
-- Liberamos el cursor.
DEALLOCATE c_tables;
-- Mostramos coincidencias encontradas.
SELECT * FROM #resultado;
end//


#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 'DECLARE vtable_name nvarchar(128); -- Declaramos la variable que va a almacenar' at line 18

Options: ReplyQuote


Subject
Views
Written By
Posted
problema con script de transact sql a mysql
2631
March 16, 2015 03:55AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.