Я конвертирую программу ingres C в Oracle Pro * C.
Я создаю и открываю курсор, чтобы выполнить SELECT (не SELECT FOR UPDATE).
Существующая программа делает (примерно)
EXEC SQL DECLARE N CURSOR for SELECT...
EXEC SQL OPEN N
EXEC SQL FETCH N INTO :new
while (sqlca.sqlcode != 100) {
// process the contents of :new
EXEC SQL FETCH N INTO :new
}
EXEC SQL CLOSE N;
Когда я достигаю последней строки, возвращаемой оператором select, я получаю сообщение об ошибке: ORA-01002: извлечение из последовательности.
Я не хочу помещать мой код очистки в мой обработчик ошибок; Я бы предпочел, чтобы цикл выходил чисто.