Ho fatto questa prova..
codice:
DELIMITER $$
DROP PROCEDURE IF EXISTS `test_proc`$$
CREATE PROCEDURE `test_proc`(parameter VARCHAR(100),data1 date,data2 date)
BEGIN
DECLARE T1 TEXT;
DECLARE T2 TEXT;
DECLARE T3 TEXT;
SET T1 = CONCAT('SELECT * FROM tbl WHERE ID IN (', parameter, ')');
SET T2 = " and prezzi(ID,data1,data2)";
SET T3 = CONCAT(T1,T2);
SELECT T3;
END$$
DELIMITER ;
e ottengo
SELECT * FROM tbl WHERE ID IN (1,2,3) and prezzi(ID,data1,data2)
però i valori di data1 e data2 vengono gestiti come testo... anzichè come parametri