首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

Mysql 存储过程 游标中使用变量的有关问题

2012-05-30 
Mysql 存储过程 游标中使用变量的问题最近学习存储过程,我想在其中使用游标并在游标中加入变量,我知道我下

Mysql 存储过程 游标中使用变量的问题
最近学习存储过程,我想在其中使用游标并在游标中加入变量,我知道我下面的写法不对,请好心人帮忙看下

SQL code
create procedure getFilmInfo (in name varchar(100))begin    DECLARE done INT DEFAULT 0;    declare filmName varchar(100);    declare revenue double;    declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like '%name/%';    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;        open directorInfoCur;    repeat        fetch directorInfoCur into filmName, revenue;                if not done then            select filmName, revenue;        end if;    until done end repeat;    close directorInfoCur;end


[解决办法]
declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like concat('%',name,'/%');
[解决办法]
declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like concat('%',name,'/%');
[解决办法]
没有用的,MySQL游标是不允许为动态的,而且你的查询条件为变量,导致整个游标成为动态SQL....

而MySQL游标是不支持动态游标的




推荐:
淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论
MySQL数据库开源软件版本 生产环境GA版本如何选择
[解决办法]
不能动态就把结果集放入有自增字段的临时表里


然后用自增字段循环处理就可以了

热点排行