下面的代码是双层游标循环:
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-XXX)查找官方文档或在线资源,通常能找到具体的解决方案。在编程时,采用异常处理机制,捕获并处理这些错误,能有效提高程序的健壮性。
INVALID_CURSOR (ORA-01001) **异常描述:** 当使用无效的游标时触发此异常,可能是因为游标尚未被正确打开。 **解决方法:** - 确保在使用游标之前已正确打开它。 - 检查游标的打开状态和使用方式。 #### 7. ...
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...
- **ORA-01000:** 当达到 `INIT.ORA` 文件中定义的最大打开游标数 (`OPEN_CURSORS`) 时,会出现此错误。 **解决办法:** - 增加 `INIT.ORA` 文件中的 `OPEN_CURSORS` 值,例如将其设为 200 或更高。 - 如果应用...
Oracle数据库是世界上最流行的数据库...这些错误代码提供了诊断Oracle数据库问题的线索,通过查阅Oracle文档或相关资源,可以找到每个错误的具体解决方法。理解这些错误及其含义是成功管理和维护Oracle数据库的关键。
### Oracle 数据库常见问题诊断方法 #### 一、常见错误篇 ##### 1.1 ORA-12571、ORA-03113、ORA-03114、ORA-01041 - **特征**: - 客户端(代理或应用服务器)有时会出现这类断连错误。 - **原因**: - 如果偶尔...
这个错误可能是由于内部错误或配置问题导致的。解决这个问题的一种方法是运行 `$ORACLE_HOME/rdbms/admin` 目录下的 `catmet2.sql` 和 `utlrp.sql` 两个SQL脚本。这些脚本用于更新数据库元数据和重新编译PL/SQL代码...
1. ORA-01002:fetch out of sequence - 当游标没有正确地按照执行顺序进行操作时,比如在未调用`OPEN`、`FETCH`或`CLOSE`之前尝试`FETCH`,会出现这个错误。确保在执行`FETCH`前先调用`OPEN`。 2. ORA-00957:...
这篇文档《Oracle 游标使用大全》应该涵盖了关于Oracle游标的各种使用方法和最佳实践。 1. **游标的定义与类型** - 游标(Cursor)是数据库系统中一个概念,用于跟踪查询结果集中的当前位置。 - Oracle游标有两种...
游标卡尺行业在2021年至2026年面临激烈的市场竞争,企业需要制定有效的市场突围战略来实现持续发展。以下是对游标卡尺行业企业市场突围战略的详细分析和建议: 第一章概述 游标卡尺作为精密测量工具,在制造业、...
**ORA-17012**:ResultSet 错误,可能与 ResultSet 的游标位置有关。 **ORA-17014**:ResultSet.next 方法调用失败,可能是因为 ResultSet 已经到达末尾或不存在数据。 **ORA-17015**:ResultSet 获取错误,通常...
#### 识别和解决错误 **只使用一个简单的select语句却得到了ORA-01002的错误信息,到底是什么原因呢?** ORA-01002错误通常出现在尝试引用一个未打开的游标时。这意味着在执行SELECT语句之前,可能未正确初始化...
本实验的目的是掌握存储过程、存储函数和游标的创建、调用、修改和删除方法,以及理解其在数据库应用中的作用。 知识点1:创建存储过程 * 使用 SQL 语句 CREATE PROCEDURE 创建存储过程,例如:DELIMITER @@ ...
13. **ORA-01001: INVALID_CURSOR** - **含义**:尝试执行非法的游标操作,例如关闭未打开的游标。 - **解决方法**:确保游标的使用符合逻辑。 14. **ORA-01722: INVALID_NUMBER** - **含义**:在SQL语句中,...
### SQL游标深入解析与应用案例 #### 一、SQL游标基础...然而,需要注意的是,过度使用游标可能会导致性能问题,因为它们涉及到较多的系统资源消耗。因此,在实际开发过程中,需要根据具体场景来决定是否使用游标。
然而,在实际应用中需要注意的是,尽管游标在某些场景下非常有用,但由于它们涉及较多的资源消耗,因此在处理大数据量时可能不如其他方法高效。例如,使用`WHILE NOT EOF`这样的结构在某些数据库系统中可能会更优。...
12. ORA-17016, -17017, -17018: 这些错误与游标管理相关,包括超时、初始化问题和无效的游标状态。 13. ORA-17019: 只能描述查询,意味着只有查询语句可以被描述,非查询操作不适用。 14. ORA-17020: 无效的行预取...