游标嵌套游标,为什么内层游标读取不到数据?
我写的是PRO*C程序,要先用外层游标查询出一些字段,再根据这些字段进行进一步查询。就是我需要建立一个表,然后表中有子表。于是我选择了游标嵌套游标的算法。可是,现在发觉外层游标的数据能读取到,可是在内层游标的时候SQLCODE一直返回1403,读取不到任何数据~~~~~ 可是事实上是应该有数据的 游标嵌套游标的大致结构可以贴一下吗?声明位置,打开位置等等 回复 2# moon38sun
可以。
DECLARE CUR1;
OPEN CUR1;
WHILE(1){
FETCH CUR1;
DECLARE CUR2;
OPEN CUR2;
WHILE(1)
{
FETCH CUR2;
}
CLOSE CUR2;
}
CLOSE CUR1;
外层游标的值是能取到的。然后根据外层游标取到的某些字段值来进行内层游标查询数据。在内层游标FETCH数据的时候判定SQLCODE总是1403.可是事实上数据库是有数据的。
我这边不是PRO*C,在PRO*COBOL里面按照你的结构试验了一下,可以正常取到数据。
应该可以排除结构的问题,请确认细节:
CUR1 FETCH到的内容,作为CUR2的检索条件的时候,在SQL*PLUS是否能正常取得数据?
回复 4# moon38sun
确认过在PL中能查询到数据~~~~~~~~~
现在问题更加复杂化了 在内层游标的打开的时候直接返回 -1036 或者911 错误了~~~~~~~~ 对于上面的结构返回1403的情况,怀疑可能是SQLCA没有进行初期化,或者给SQLCA赋值消耗时间过长,导致你看到的不是最新的sqlcode,还是上一个操作的sqlcode。 回复 6# moon38sun
上一个没报错 于是肯定是0
页:
[1]