MariaDB社区

标题: 动态游标问题 [打印本页]

作者: 独步古今    时间: 2008-6-23 01:28
标题: 动态游标问题
大家好,mysql的存储过程中,可以执行动态sql。请问一下,mysql是否支持动态游标呢(即用动态sql语句来声明游标,因为表名是参数传进来,sql语句必须是动态的),我试过几次了,好像都不行啊,谢谢各位赐教。。。
作者: kider    时间: 2008-6-24 10:01
感觉理论上好像可以,没有试过...
作者: tearrain1987    时间: 2009-10-19 18:01
同样的问题啊~~顶起来~~~
作者: kider    时间: 2009-10-20 17:08
大家好,mysql的存储过程中,可以执行动态sql。请问一下,mysql是否支持动态游标呢(即用动态sql语句来声明游 ...
独步古今 发表于 2008-6-23 01:28


是可以的,用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');




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2