独步古今 发表于 2008-6-23 01:28:11

动态游标问题

大家好,mysql的存储过程中,可以执行动态sql。请问一下,mysql是否支持动态游标呢(即用动态sql语句来声明游标,因为表名是参数传进来,sql语句必须是动态的),我试过几次了,好像都不行啊,谢谢各位赐教。。。

kider 发表于 2008-6-24 10:01:15

感觉理论上好像可以,没有试过...

tearrain1987 发表于 2009-10-19 18:01:57

kider 发表于 2009-10-20 17:08:04

大家好,mysql的存储过程中,可以执行动态sql。请问一下,mysql是否支持动态游标呢(即用动态sql语句来声明游 ...
独步古今 发表于 2008-6-23 01:28 http://www.mysqlpub.com/images/common/back.gif

是可以的,用prepare语句吧,构造好一个语句,传参,执行。

举个例子:
DELIMITER $$
DROP PROCEDURE IF EXISTS `USP_kider`$$
CREATE DEFINER=`root` @ `localhost` PROCEDURE `USP_kider`(v_test VARCHAR(255))
BEGIN
   IF(v_test IS NOT NULL AND v_test!='') THEN
   SET @v_Statement1 = CONCAT('select * from ', v_test);
   PREPARE ps_Statement1 FROM @v_Statement1;
   EXECUTE ps_Statement1;
   END IF;
END$$
DELIMITER ;


CALL USP_kider('yourtable');
页: [1]
查看完整版本: 动态游标问题