ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Proc编译运行出现ORA-1002:fetch out of sequence

Proc编译运行出现ORA-1002:fetch out of sequence

原创 Linux操作系统 作者:yezhibin 时间:2011-12-29 09:03:27 0 删除 编辑

     在编译运行proc程序时候,出现ora-1002错误,程序中简单步骤:

1、打开游标,
    
2、通过捆绑变量v1,循环执行select col_name from table_name where colB= :v1,获得结果集。

3、循环完成之后,关闭游标

类似语句如下:

exec sql declare C cursor for S;
exec sql open c using :v1
while ( xxxx)
 {
   /* v1 有多个值*/  
   执行select col_name from table_name where colB=:v1
   }  
exec sql close c;

问题解决:

在oracle 10g和11g,出现类似上述查询语句时候,在同一个游标下,第一次赋予捆

绑变量的值,查询没有问题,但在第二次赋予捆绑变量新值的时候,有可能出现

ORA-1002错误。

所以修改语句将打开和关闭游标放置在循环语句的头和尾,每一次循环,赋予新的捆绑变量值,采用新的游标。类似于:

while ( xxxx)
 {
     exec sql open c using :v1
   /* v1 有多个值*/  
   执行select col_name from table_name where colB=:v1;
   exec sql close c;
}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/354732/viewspace-714114/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据库监控软件
请登录后发表评论 登录
全部评论

注册时间:2008-12-18

  • 博文量
    159
  • 访问量
    507011