DELIMITER $$
CREATE PROCEDURE `test`(IN bbyf varchar(8))
BEGIN
declare ksrq varchar(8);
declare jsrq varchar(8);
declare done int default 0;select ksrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)<bbyf;
select jsrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)=bbyf; declare branch_cur cursor
for
select ffzdm,fkhzs,fxhzs,fzjye,fccbzj,fzcze,fljyj,fljjyj,fljks,fljyl from bb_yyrb where fbbrq=jsrq;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
...
...END $$因为declare branch_cur cursor .... 声明在黑体字后面,所以导致一直出错。如何解决???
CREATE PROCEDURE `test`(IN bbyf varchar(8))
BEGIN
declare ksrq varchar(8);
declare jsrq varchar(8);
declare done int default 0;select ksrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)<bbyf;
select jsrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)=bbyf; declare branch_cur cursor
for
select ffzdm,fkhzs,fxhzs,fzjye,fccbzj,fzcze,fljyj,fljjyj,fljks,fljyl from bb_yyrb where fbbrq=jsrq;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
...
...END $$因为declare branch_cur cursor .... 声明在黑体字后面,所以导致一直出错。如何解决???
解决方案 »
- phpmyadmin 求插入(多表合并,查了一天资料。已经成功取出记录,求SQL语句插入数据表)
- mysql 匹配 ,我想查出和a相等或者以a开头且长度为2的所有单词该怎么办?
- mysql limit 执行后没有效果
- 对大表按编号拆表后 如何维护原先的唯一索引
- ecpg是不是Postgresql自带的预编译器
- 如何判断一个mysql表的类型
- 急问:更新MYSQL的时间字段
- 如何在Postgres数据库当中存储和读取图片,用什么类型的字段,代码如何写啊
- MySQL是否具有事务处理的功能?
- 错误#1242 - Subquery returns more than 1 row
- 设计一个方案
- 配置apache的httpd.conf出的错
---------
declare branch_cur cursor
for
select ffzdm,fkhzs,fxhzs,fzjye,fccbzj,fzcze,fljyj,fljjyj,fljks,fljyl from bb_yyrb where fbbrq=jsrq;
---------
这一句好像只与jsrq有关,那么就把两句融合了吧。
DELIMITER $$
CREATE PROCEDURE `test`(IN bbyf varchar(8))
BEGIN
declare ksrq varchar(8);
declare jsrq varchar(8);
declare done int default 0; declare branch_cur cursor
for
select ffzdm,fkhzs,fxhzs,fzjye,fccbzj,fzcze,fljyj,fljjyj,fljks,fljyl from bb_yyrb
where fbbrq in (select jsrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)=bbyf); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; select ksrq=max(fbbrq) from bb_yyrb where left(fbbrq,6) <bbyf;
...
...
END $$
DELIMITER ;
要是select ksrq=max(fbbrq) from bb_yyrb where left(fbbrq,6) <bbyf;
select jsrq=max(fbbrq) from bb_yyrb where left(fbbrq,6)=bbyf;
的结果都要使用到的话,那么游标的SQL语句将变的非常复杂。而且要是游标中嵌套游标的话,好象没办法实现。
不知道有没有更好的方法?