在存储过程内,游标使用动态sql的,代码始终编译不过去
我是想调用游标的时候,用拼接的sql来做,不知道怎么做才能通过
CREATE PROCEDURE dynamic_cursor()
BEGIN
DECLARE table_name VARCHAR(50);
DECLARE column_name VARCHAR(50);
DECLARE query VARCHAR(500);
DECLARE done INT DEFAULT FALSE;
DECLARE cursor_student1 CURSOR stmt ‘在此处一直报错,编译不过去’
SET table_name = ‘employee’;
SET column_name = ‘age’;
– 组装查询语句,动态定义游标
SET query = CONCAT(‘SELECT * FROM ‘, table_name, ‘ WHERE ‘, column_name, ‘ >30’);
PREPARE stmt FROM query;
OPEN cur;
– 处理结果集
REPEAT
FETCH cur INTO …;
IF NOT done THEN
– 处理结果集
END IF;
UNTIL done END REPEAT;
– 关闭游标
CLOSE cur;
END;
推荐文章: