闪客动漫天地
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
闪客动漫天地论坛

发表新主题 回复该主题
本主题被查看947次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: MySQL 存储过程中的循环操作
注册会员
UID: 309683
来自:
精华: 0
积分: 54
帖子: 54
注册: 2007-6-18 15:03:00
状态: 离线
威望: 0.00
金钱: 12.00 元
只看楼主 2007-06-18 15:26
MySQL 存储过程中的循环操作
使用光标执行循环操作
DROP PROCEDURE IF EXISTS sp_opr;
CREATE PROCEDURE sp_opr()
BEGIN

    /**//* 定义变量一 */
    DECLARE _Err_Code CHAR(8) DEFAULT '';
    /**//* 定义变量二 */
    DECLARE _Cnt INT DEFAULT 0;
   
    /**//* 光标 */
    DECLARE _done INT DEFAULT 0;
    DECLARE _Cur_Error CURSOR FOR
        SELECT col1,col2 FROM table WHERE rec_dd=ADDDATE(CURDATE(),-1);
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
   
    /**//* 打开光标 */
    OPEN _Cur_Error;
        /**//* 循环执行 */
        REPEAT
          FETCH _Cur_Error INTO _Err_Code, _Cnt; --读取下一行
         
          IF NOT _done THEN
          -- 这里的代码被循环执行(这里可以使用上面读取的值)
          END IF;
         
        UNTIL _done END REPEAT; --当_done=1时退出被循
       
    /**//*关闭光标*/
    CLOSE _Cur_Error;

END;
----[url]http://www.cnblogs.com/chy710/archive/2007/06/13/782481.html[/url]
#1  
发表新主题 回复该主题
本主题被查看947次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-10-13 21:01:13
沪ICP备05003105号

版权所有 闪客俱乐部  
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.256 seconds