Я все время использую курсорные циклы for и никогда не видел описанную вами ситуацию.Единственное, что я могу подумать, это то, что у вас есть переменная с именем secuence
, объявленная в другом месте вашей программы, которая, как оказалось, установлена на 1. В этом случае компилятор PL / SQL может предпочесть использовать глобальную переменную secuence
, а нечем переменная контроля цикла secuence
при создании оператора SQL.Хорошее практическое правило - использовать уникальное имя для каждой переменной управления циклом.
Однако вы можете полностью избавиться от цикла FOR secuence...
, используя:
FOR registro_notificacion IN (SELECT 'data'
FROM my_table
WHERE my_table.column1 BETWEEN 1 AND 3
ORDER BY my_table.column1)
LOOP
--work with data
END LOOP;
ОткрытиеОдин курсор, как правило, дешевле, чем открытие трех курсоров.
Удачи.