ERROR while sending table as parameter in MySQL storage procedure

I wrote a storage procedure. It runs correctly, but when I call the procedure, it shows an error:

Error code: 1327 Undeclared variable: Third

See my procedure below:

DELIMITER $$ USE `db_test`$$ DROP PROCEDURE IF EXISTS `test_proc`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN newsInfoTable VARCHAR(100)) BEGIN SET @sql_stam = CONCAT('SELECT news INTO ', @news,' FROM ',newsInfoTable,' WHERE ',CURDATE(),'=?;'); PREPARE s1 FROM @sql_stam; SET @where_param = DATE_FORMAT(date_time,'%Y-%m-%d'); EXECUTE s1 USING @where_param; SELECT @news; END$$ DELIMITER ; 

Caller parameter:

 USE db_test; CALL test_proc('tbl_morning_news'); 
0
source share
1 answer

Change your code to:

 DELIMITER $$ USE `db_test`$$ DROP PROCEDURE IF EXISTS `test_proc`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN newsInfoTable VARCHAR(100)) BEGIN SET @sql_stam = CONCAT( 'SELECT news INTO @news FROM ',newsInfoTable ,' WHERE DATE(`date_time`) = CURDATE()' ); PREPARE s1 FROM @sql_stam; SELECT @news; END$$ DELIMITER ; 
0
source

All Articles