КУРСОР REF є тип даних PL/SQL, значенням якого є адреса пам’яті робочої області запиту в базі даних. По суті, REF CURSOR — це покажчик або дескриптор набору результатів у базі даних. REF CURSOR представлені через клас OracleRefCursor ODP.NET.
1) Курсор посилання не можна використовувати в циклі CURSOR FOR, його слід використовувати в простому операторі CURSOR LOOP, як у прикладі. 2) Посилальний курсор визначається під час виконання і може бути відкритий динамічно, але звичайний курсор є статичним і визначається під час компіляції.
Використання змінної курсора PL/SQL із REF CURSOR Блок PL/SQL має відкрити курсор для динамічного запиту, який вибирає всі стовпці з таблиці «employees», отримати дані в змінних для «employee_id» і «employee_name», а потім відобразити ідентифікатор та ім'я кожного співробітника за допомогою DBMS_OUTPUT. функція PUT_LINE.
ви закриваєте курсори ПІСЛЯ їх використання. Тому ви закриваєте курсор посилання після того, як ви отримуєте з нього. Якщо ви втратите набір результатів, це означає, що ви ще не закінчили роботу з курсором посилання. просто поводьтеся з курсором посилання так само, як з будь-яким іншим курсором, закрийте його після того, як ви закінчите з ним.
Типи REF CURSOR можуть бути сильними (обмежувальними) або слабкими (необмежувальними). Надійне визначення типу REF CURSOR вказує тип повернення, але слабке визначення – ні.
Перевага, яку має посилальний курсор над простим курсором, полягає в тому, що можна передати як змінну в процедуру або функцію. Курсор посилання можна призначити іншим змінним курсору посилання.