龙浩lh40 发表于 2012-03-13 20:51

游标嵌套游标,遇到新的怪异问题

我写的是PRO*C程序。在前面游标嵌套游标的时候,最开始是内层游标在FETCH数据的时候SQLCODE 返回1403,取不到数据。然后之后,我从网上搜索了各种答案之后,把内层游标换成动态游标来使用。在打开内层游标的时候报-1036 或者-911错误。然后我将程序恢复成最初的写法之后,依然在打开内层游标的时候报-1036 或者-911错误。

我跟踪过,外层游标时完全无误的将数据取出来了的。

然后我尝试着将内层游标里面的查询子句里面的宿主变量换成常值之后,有时候在打开游标的时候报-1036或者-911错误,有时候在FETCH里面报-1007 错误。


最后,我在内层游标DECLARE之前对数据库进行了一个简单的查询操作之后,竟然不报错了。

最初的结构:
DECLARE CUR1;

OPEN CUR1;

WHILE(1){
      FETCH CUR1;
      DECLARE CUR2;
      OPEN CUR2;
      WHILE(1)
      {
         FETCH CUR2;
       }
       CLOSE CUR2;

}
CLOSE CUR1;
反复的编译测试的时候 有时报-1036错误,有时候报-911错误。

后来换成这样后:
DECLARE CUR1;

OPEN CUR1;

WHILE(1){
      FETCH CUR1;
      select 语句;
      DECLARE CUR2;
      OPEN CUR2;
      WHILE(1)
      {
         FETCH CUR2;
       }
       CLOSE CUR2;

}
CLOSE CUR1;

程序不管多少次编译执行,都不会报错。

这个到底是为什么呢?
页: [1]
查看完整版本: 游标嵌套游标,遇到新的怪异问题