при условии, что база данных является оракулом ... согласно функции цикла она выполняется только построчно.нет необходимости отдельно инициализировать, чтобы получить строку за строкой.у вас может быть следующая ссылка ...
declare
cursor c1 is <select column1 statement>;
...
begin
...
for rec in c1
loop
.......
insert into LINE values (rec.column1);
......
end loop;
commit;
end;
все операторы цикла выполняются только по записи.
и как указано в вашем вопросе, если вы используете как
SELECT COLUMN1
FROM TABLE1
WHERE ROWNUN=I
это будет возвращать значение только тогда, когда rownum = 1 .... когда у нас есть другие условия, такие как rownum = 2, rownum = 3 ....., он не вернет никаких результатов, если у таблицы нет имени столбца 'ROWNUM '.. Rownum - это динамически генерируемый на основе результатов, извлекаемых курсором выбора, и, следовательно, прямая выборка, например, rownum = 2, не выполняется, где вы можете иметь значение rownum <= 2 и работать вокруг ... я предлагаю использовать циклфункциональность для записи по операциям записи ... </p>