Яка різниця між вибіркою курсора та циклом for?

Явна вибірка курсору дозволяє явний масовий збір. Наявність такої колекції дозволяє явне групове зв’язування (за допомогою оператора ForAll) у циклі курсору. Неявний курсор для циклу виконує неявне групове збирання, завдяки оптимізації PL/SQL. 4 березня 2013 р.

Курсори — це об’єкти бази даних, які дозволяють отримувати та маніпулювати даними рядок за рядком. Цикли While — конструкція програмування, яка надає вам можливість повторювати блок коду, поки виконується задана умова.

Оператор курсору FOR LOOP неявно оголошує свій індекс циклу як змінну запису типу рядка, який повертає вказаний курсор, а потім відкриває курсор. З кожною ітерацією оператор FOR LOOP курсора отримує рядок із набору результатів у запис.

ОТРИМАТИ отримує рядки за допомогою попередньо створеного курсору. Курсор має пов’язану позицію, яка використовується FETCH. Позиція курсору може бути перед першим рядком результату запиту, у будь-якому конкретному рядку результату або після останнього рядка результату.

1) Курсор посилання не можна використовувати в циклі CURSOR FOR, його слід використовувати в простому операторі CURSOR LOOP, як у прикладі. 2) Посилальний курсор визначається під час виконання і може бути відкритий динамічно, але звичайний курсор є статичним і визначається під час компіляції.

Деякі розробники віддають перевагу курсорам тому що вони більше схожі на те, як люди обробляють дані, один рядок за раз. Інші розробники віддають перевагу циклам, тому що вони краще знайомі з синтаксисом і логікою конструкцій циклу.