0 0

Mysql 中使用游标循环的问题5

DECLARE CONTINUE HANDLER FOR NOT FOUND
set stopFlag=1;
OPEN cur1;
REPEAT
FETCH cur1 INTO C_PayCode,C_PayName;
  begin
   /////
  end;
UNTIL stopFlag = 1
END REPEAT;
CLOSE cur1;

我发现最后会多循环一次。怎么修改都没用,请问问题到底出在哪里
问题补充:
DECLARE CONTINUE HANDLER FOR NOT FOUND
set stopFlag=1;
OPEN cur1;
REPEAT
FETCH cur1 INTO C_PayCode,C_PayName;
  begin
   /////
  end;
UNTIL stopFlag = 1
END REPEAT;
CLOSE cur1;

我发现最后会多循环一次。怎么修改都没用,请问问题到底出在哪里

回答wang,前面有申明的,我没复制过来。

回答Spit,确实是如此,实际N,出来N+1

回答楼上2位,答案找到了。

实际stopFlag 默认是null,它大爷的。

所以必须是
begin
if(stopFlag is null) then
  xxxxxxx
end if;
end;

大家也借鉴下吧
问题补充:
DECLARE CONTINUE HANDLER FOR NOT FOUND
set stopFlag=1;
OPEN cur1;
REPEAT
FETCH cur1 INTO C_PayCode,C_PayName;
  begin
   /////
  end;
UNTIL stopFlag = 1
END REPEAT;
CLOSE cur1;

我发现最后会多循环一次。怎么修改都没用,请问问题到底出在哪里
问题补充:
DECLARE CONTINUE HANDLER FOR NOT FOUND
set stopFlag=1;
OPEN cur1;
REPEAT
FETCH cur1 INTO C_PayCode,C_PayName;
  begin
   /////
  end;
UNTIL stopFlag = 1
END REPEAT;
CLOSE cur1;

我发现最后会多循环一次。怎么修改都没用,请问问题到底出在哪里


========================================================

回答wang,前面有申明的,我没复制过来。

回答Spit,确实是如此,实际N,出来N+1

回答楼上2位,答案找到了。

实际stopFlag 默认是null,它大爷的。

所以必须是
begin
if(stopFlag is null) then
  xxxxxxx
end if;
end;

大家也借鉴下吧
问题补充:
回答最后一位的问题,请仔细看,是当 DECLARE CONTINUE HANDLER FOR NOT FOUND
时候才set 1的
2008年11月12日 01:30

3个答案 按时间排序 按投票排序

0 0

stopFlag 默认是null,
你不是通过set 给他赋值了吗

2008年11月12日 16:03
0 0

没看出代码有什么问题,是不是你认为应该有n行而实际是n+1行

2008年11月12日 10:15
0 0

declare cur1 CURSOR FOR SELECT C_PayCode,C_PayName FROM XXXXX ;
/*开游标*/
     OPEN cur1;
         /*游标向下走一步*/
         FETCH cur1 INTO C_PayCode,C_PayName ;


我怎么没有看见你有游标申明呀..

2008年11月12日 09:50

相关推荐

    Mysql游标(循环操作)

    ### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...

    mysql游标实现到了最后一个结束之后结束循环

    MySQL游标是数据库管理系统中用于遍历查询结果集的一种机制,尤其在处理大量数据或进行迭代操作时,游标显得尤为重要。这篇博文可能是探讨如何在MySQL中使用游标,特别是当游标执行到最后一行后如何正确地结束循环。...

    MySQL存储过程中游标循环的跳出和继续操作示例

    本篇文章将详细讨论在MySQL存储过程中如何使用游标循环,并特别关注如何进行跳出和继续操作。 首先,游标循环通常有三种基本形式:`LOOP`、`REPEAT`和`WHILE`。每种循环结构都有其特定的语法和用途,但核心思想都是...

    mysql存储过程 游标 循环使用介绍

    在循环中,我们还可以使用ITERATE语句跳过当前循环迭代并继续下一个迭代,类似于C语言中的`continue`。 3. CONTINUE HANDLER 和 DECLARE: 在存储过程中,我们可以设置CONTINUE HANDLER来处理某些异常情况,比如...

    mysql游标详解

    如果需要实现嵌套的游标循环,可以使用 BEGIN 和 END 语句来划分一个statement block,例如: DECLARE fetchSeqOk BOOLEAN; BEGIN DECLARE _seqname VARCHAR(50); DECLARE _value BIGINT(20); DECLARE ...

    mysql 多个游标依次执行

    mysql存储过程 多个游标循环(依次执行,非嵌套循环)REPEAT循环。有需要的可自行下载。

    Mysql存储过程循环内嵌套使用游标示例代码

    总结来说,这个示例展示了如何在MySQL存储过程中使用游标进行循环处理,并在循环内部再次嵌套游标以实现更精细的数据操作。这种技术在处理大量数据或执行复杂逻辑时非常有用,尤其是在需要逐行检查和处理数据的情况...

    mysql游标

    除了基础的游标操作,MySQL还支持其他特性,如:嵌套游标(一个游标内部使用另一个游标)、可滚动游标(允许向前和向后移动)以及隐式游标(无需显式声明,常在存储过程中使用)。 在实际应用中,游标常常用于以下...

    MySql游标的使用实例

    MySQL游标是数据库管理系统中的一个重要概念,主要用于在存储过程或函数中逐行处理查询结果集。...通过游标,开发者可以实现更灵活的数据处理策略,比如在循环中进行条件判断、更新数据或其他复杂的操作。

    不使用游标完成循环功能(下)

    这种方法的核心在于使用临时表结合`WHILE`循环结构来模拟游标的行为,从而避免了游标带来的性能问题。 **具体步骤**: 1. **初始化**:首先,设置迭代变量`@i`和行计数器`@iRwCnt`,并创建临时表`#tbl`用于存放待...

    mysql游标存储过程例子

    该存储过程展示了如何在MySQL中使用存储过程结合游标来高效处理大量数据,同时通过异常处理机制来确保数据处理的安全性。此外,还涉及到了日期操作、临时表的使用等实用技术。这对于处理复杂的业务逻辑非常有用,...

    mysql存储过程_游标_项目练习

    3. 条件判断与循环:可能需要在存储过程中使用IF-ELSE结构进行条件判断,或者使用WHILE或LOOP结构进行循环操作,这在处理复杂逻辑时非常常见。 4. 结果集处理:根据项目需求,可能需要对游标遍历的结果进行更新、...

    Oracle存储过程游标详解

    如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。 Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。它可以帮助开发者更好地处理和操作结果集,但需要注意避免使用...

    mysql动态游标学习(mysql存储过程游标)

    在本示例中,我们将深入探讨如何在MySQL中使用动态游标,特别是结合存储过程来实现这一功能。 首先,创建了一个名为`webuser`的测试表,用于存放用户名数据。接着插入了一些示例数据,包括以'a'和'b'开头的用户。这...

    mysql函数、存储过程、触发器、游标.doc

    MySQL是世界上最流行的开源关系型数据库管理系统之一,它包含多种功能,如函数、存储过程、触发器和游标,这些功能极大地增强了数据库管理的灵活性和效率。以下是对这些概念的详细解释: 1. **MySQL函数**:MySQL...

    mysql中游标的使用案例详解(学习笔记)

    在MySQL中使用游标涉及到几个关键步骤: **2.1 声明游标** ```sql DECLARE cursor_name CURSOR FOR SELECT statement; ``` 这里`cursor_name`是你给游标起的名字,`SELECT statement`是你想要执行的查询语句。 **...

    MySQL使用游标批量处理进行表操作

    - 在循环内,使用`FETCH`将游标中的表名赋值给`TableName`。 - 使用预处理语句(`PREPARE`)创建索引的SQL字符串,这样可以动态地为每个表创建索引。 - 对每个索引执行`EXECUTE`语句来实际创建索引。 - 最后,使用`...

    Mysql的游标的定义使用及关闭深入分析

    以上就是MySQL游标的定义、使用和关闭的基本概念以及如何处理游标循环的细节。理解这些概念对于编写涉及复杂数据处理的存储过程至关重要。记住,游标虽然提供了逐行处理数据的能力,但也需要注意性能影响,因为它们...

Global site tag (gtag.js) - Google Analytics