Hola a todos tengo el siguiente procedimiento almacenado:
DELIMITER $$
CREATE PROCEDURE listadoFORM(IN tform VARCHAR(20))
BEGIN
DECLARE prefi VARCHAR(6);
DECLARE query VARCHAR(100);
SELECT pref_tit INTO prefi FROM tipotabla WHERE nom_tit = tform;
if(prefi!='') THEN
SET @query = CONCAT("SELECT * FROM ",tform," LEFT JOIN actividadfecha ON (cod_",prefi,"=cform_acf) WHERE tform_acf=",tform," ORDER BY fecha_acf DESC;");
PREPARE stmt FROM @query;
EXECUTE stmt;
END IF;
END$$
DELIMITER ;
resulta que cuando hago: "CALL listadoFORM('form2');"
me muestra el siguiente error: "#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_spanish_ci,IMPLICIT) for operation '='"
probé con:
DELIMITER $$
CREATE PROCEDURE listadoFORM(IN tform VARCHAR(20))
BEGIN
DECLARE prefi VARCHAR(6);
DECLARE prefi2 VARCHAR(6);
DECLARE tabla VARCHAR(20);
DECLARE query VARCHAR(100);
DECLARE query2 VARCHAR(100);
SELECT pref_tit INTO prefi FROM tipotabla WHERE nom_tit = tform;
if(prefi!='') THEN
SET @query = CONCAT("SELECT * FROM "tform" LEFT JOIN actividadfecha ON (cod_"prefi"=cform_acf) WHERE tform_acf="tform" ORDER BY fecha_acf DESC;");
SET @query2=CONVERT(query using latin1) collate latin1_spanish_ci;
PREPARE stmt FROM @query2;
EXECUTE stmt;
END IF;
END$$
DELIMITER ;
Pero me sigue mostrando el mismo error..
Saben a que se debe... ? o en que punto esta mal la sintaxis.?
Espero su respuesta.. Gracias por su colaboración...