检查觉得是没有问题的,不过一直保存不下来,一直报错,不知道是哪里出现了问题,求解答!!
CREATE PROCEDURE `早晚高峰查询`(IN param_table_list VARCHAR(255), OUT param_sql_query VARCHAR(255))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE table_list VARCHAR(255); -- 声明变量
SET table_list = ''; -- 初始化变量
DECLARE table_count INT(255); -- 声明变量
SET table_count = 1; -- 赋值
DECLARE table_name VARCHAR(255); -- 声明变量
DECLARE sql_query VARCHAR(255); -- 声明变量
WHILE NOT done
BEGIN
SET table_name = 'all_data_' + CAST(table_count AS VARCHAR(2));
IF table_list = ''
BEGIN
SET table_list = table_name;
END
ELSE
BEGIN
SET table_list = table_list + ', ' + table_name;
END
SET table_count = table_count + 1;
IF table_count > 14 THEN -- 修改条件判断
SET done = TRUE;
END IF;
END
SET sql_query = 'SELECT * FROM (' +
SUBSTRING(table_list, 1, LENGTH(table_list) - 1) + ') AS tables' +
' WHERE HOUR(pass_time) >= 7 AND HOUR(pass_time) < 9';
SET param_sql_query = sql_query; -- 将输出参数设置为sql_query的值
END
报错语句如下:
1064 - You have an error in your SOL syntax; check the manual that corresponds to your MysOl. server version for the right syntax touse nearDECLARE table count INT(255): -- 声明变量SET table count = 1: -- G' at line 6