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


     在编译运行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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/354732/viewspace-714114/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值