`
xiang37
  • 浏览: 430865 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

双层游标循序,导致ORA-01001错误的解决方法

 
阅读更多

下面的代码是双层游标循环:

 

  EXEC SQL PREPARE stat_ifinfo FROM :ifinfoSQL;
    EXEC SQL DECLARE cur_ifinfo CURSOR FOR stat_ifinfo;
	EXEC SQL OPEN cur_ifinfo USING :tpStr, :passTypeStr;

    /* 接口定义表的游标声明、定义与打开                                                               */
    EXEC SQL PREPARE stat_msgno FROM :msgnoSQL;
    EXEC SQL DECLARE cur_msgno CURSOR FOR stat_msgno;
	

    EXEC SQL WHENEVER NOT FOUND DO BREAK;//当循环时,没有数据则break.此语句要写在循环语句上面
    for(;;){
        EXEC SQL FETCH cur_ifinfo INTO :IFCodeStr :ind_IFCode;
                 ......
        if(strcmp(IFCodeStr, "") != 0){
            EXEC SQL OPEN cur_msgno USING :IFCodeStr;
            for(;;){

                EXEC SQL FETCH cur_msgno INTO :i_dataitem, :msgnoStr, :msgposStr, :msglenStr;
                
            }

            //EXEC SQL CLOSE cur_msgno;此处关闭将会导致无效游标的错误
        }else{
            .....
        }

    }
    EXEC SQL CLOSE cur_msgno;
    EXEC SQL CLOSE cur_ifinfo;
    EXEC SQL WHENEVER NOT FOUND CONTINUE;//需变更回<NOT FOUND>的处理方式
 

关闭游标需要在二层遍历游标之外。

分享到:
评论

相关推荐

    超出打开游标的最大数的原因和解决方案

    超出打开游标的最大数的原因和解决方案 在 Oracle 数据库中,游标(cursor)是一种临时工作区,用于存储查询结果。每个会话可以打开多个游标,但存在一个限制,即 OPEN_CURSORS 参数指定的最大游标数。如果应用程序...

    oracle超出打开游标的最大数的原因和解决方案

    解决疑难问题,针对偏僻的问题:oracle超出打开游标的最大数的原因和解决方案,希望能对大家操作数据库有用处

    oracle+ora-各种常见java.sq

    在Oracle数据库操作中,我们...当遇到具体异常时,结合Oracle的错误代码(如ORA-XXX)查找官方文档或在线资源,通常能找到具体的解决方案。在编程时,采用异常处理机制,捕获并处理这些错误,能有效提高程序的健壮性。

    Oracle 数据库常见问题诊断方法

    ### Oracle 数据库常见问题诊断方法 #### 一、常见错误篇 ##### 1.1 ORA-12571、ORA-03113、ORA-03114、ORA-01041 - **特征**: - 客户端(代理或应用服务器)有时会出现这类断连错误。 - **原因**: - 如果偶尔...

    Oracle常用异常代码

    INVALID_CURSOR (ORA-01001) **异常描述:** 当使用无效的游标时触发此异常,可能是因为游标尚未被正确打开。 **解决方法:** - 确保在使用游标之前已正确打开它。 - 检查游标的打开状态和使用方式。 #### 7. ...

    ora-exploits-evilcursor:Oracle Evil 游标注入漏洞利用库 - Perl 和 SQL 版本

    ora-exploits-evilcursor Oracle Evil 游标注入漏洞利用存储库 - Perl 和 SQL 版本SQL  bunkerview.sql  ctxsys-drvxtabc-create_tablesV2.sql  dbms_cdc_subscribeV2.sql  dbms_meta_get_ddlV2.sql  kupm...

    Oracle数据库常见问题诊断-常见错误篇

    - **ORA-01000:** 当达到 `INIT.ORA` 文件中定义的最大打开游标数 (`OPEN_CURSORS`) 时,会出现此错误。 **解决办法:** - 增加 `INIT.ORA` 文件中的 `OPEN_CURSORS` 值,例如将其设为 200 或更高。 - 如果应用...

    oracle Rule分析及说明文档.doc

    在调用外部定义的游标之前,必须确保它已经被打开,否则同样可能导致ORA-01001错误。 在编写PL/SQL代码时,遵循这些规则有助于减少错误,提高性能,并保持代码的整洁和可读性。为了确保最佳实践,开发人员应定期...

    oracle常见错误号

    1. ORA-01002:fetch out of sequence - 当游标没有正确地按照执行顺序进行操作时,比如在未调用`OPEN`、`FETCH`或`CLOSE`之前尝试`FETCH`,会出现这个错误。确保在执行`FETCH`前先调用`OPEN`。 2. ORA-00957:...

    ora_error大全.doc

    Oracle数据库是世界上最流行的数据库...这些错误代码提供了诊断Oracle数据库问题的线索,通过查阅Oracle文档或相关资源,可以找到每个错误的具体解决方法。理解这些错误及其含义是成功管理和维护Oracle数据库的关键。

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例

    这个错误可能是由于内部错误或配置问题导致的。解决这个问题的一种方法是运行 `$ORACLE_HOME/rdbms/admin` 目录下的 `catmet2.sql` 和 `utlrp.sql` 两个SQL脚本。这些脚本用于更新数据库元数据和重新编译PL/SQL代码...

    Oracle 游标使用大全

    这篇文档《Oracle 游标使用大全》应该涵盖了关于Oracle游标的各种使用方法和最佳实践。 1. **游标的定义与类型** - 游标(Cursor)是数据库系统中一个概念,用于跟踪查询结果集中的当前位置。 - Oracle游标有两种...

    游标卡尺行业(2021-2026)企业市场突围战略分析与建议.docx

    游标卡尺行业在2021年至2026年面临激烈的市场竞争,企业需要制定有效的市场突围战略来实现持续发展。以下是对游标卡尺行业企业市场突围战略的详细分析和建议: 第一章概述 游标卡尺作为精密测量工具,在制造业、...

    oracle 错误合集

    **ORA-17012**:ResultSet 错误,可能与 ResultSet 的游标位置有关。 **ORA-17014**:ResultSet.next 方法调用失败,可能是因为 ResultSet 已经到达末尾或不存在数据。 **ORA-17015**:ResultSet 获取错误,通常...

    oracle errors (oracle 错误)

    #### 识别和解决错误 **只使用一个简单的select语句却得到了ORA-01002的错误信息,到底是什么原因呢?** ORA-01002错误通常出现在尝试引用一个未打开的游标时。这意味着在执行SELECT语句之前,可能未正确初始化...

    实验6 存储过程、存储函数和游标-软工2111-雷靖彤.doc

    本实验的目的是掌握存储过程、存储函数和游标的创建、调用、修改和删除方法,以及理解其在数据库应用中的作用。 知识点1:创建存储过程 * 使用 SQL 语句 CREATE PROCEDURE 创建存储过程,例如:DELIMITER @@ ...

    SQLException

    13. **ORA-01001: INVALID_CURSOR** - **含义**:尝试执行非法的游标操作,例如关闭未打开的游标。 - **解决方法**:确保游标的使用符合逻辑。 14. **ORA-01722: INVALID_NUMBER** - **含义**:在SQL语句中,...

    SQL游标深处 游标案例 没有说明 自己看

    ### SQL游标深入解析与应用案例 #### 一、SQL游标基础...然而,需要注意的是,过度使用游标可能会导致性能问题,因为它们涉及到较多的系统资源消耗。因此,在实际开发过程中,需要根据具体场景来决定是否使用游标。

    SQL游标使用例子--有注释

    然而,在实际应用中需要注意的是,尽管游标在某些场景下非常有用,但由于它们涉及较多的资源消耗,因此在处理大数据量时可能不如其他方法高效。例如,使用`WHILE NOT EOF`这样的结构在某些数据库系统中可能会更优。...

    Oracle错误代码集合[参考].pdf

    12. ORA-17016, -17017, -17018: 这些错误与游标管理相关,包括超时、初始化问题和无效的游标状态。 13. ORA-17019: 只能描述查询,意味着只有查询语句可以被描述,非查询操作不适用。 14. ORA-17020: 无效的行预取...

Global site tag (gtag.js) - Google Analytics