CURSOR в PL/SQL. Введение
Оператор CURSOR используется в PL/SQL для пошагового обхода строк запроса — когда вы хотите выполнить действия над каждой строкой индивидуально, а не одной массовой операцией.
💡 Это похоже на цикл for в языках программирования, где каждая строка таблицы — это итерация.
🔤 Написание
Объявление курсора:
Использование курсора:
Или через цикл:
🔄 Где часто используется
Пошаговая обработка строк
Индивидуальная логика для каждой записи
Аудит, логирование, накопительные действия
Генерация отчётов построчно
Интеграции с внешними API (одна строка — один запрос)
🧪 10 Примеров использования CURSOR с пояснениями
1️⃣ Простой курсор с циклом
Выводим список сотрудников по одному.
2️⃣ Курсор с параметром
Вывод сотрудников конкретного отдела.
3️⃣ Объявление переменных и FETCH
Ручное управление курсором.
4️⃣ Курсор с UPDATE
Увеличиваем зарплату низкооплачиваемым сотрудникам.
5️⃣ Использование %ROWTYPE
Работа с полной строкой таблицы.
6️⃣ Курсор в хранимой процедуре
Обёртка курсора в процедуру.
7️⃣ %FOUND и %NOTFOUND
Проверка, была ли получена строка.
8️⃣ Курсор с несколькими столбцами
Работа с несколькими полями.
9️⃣ Цикл WHILE с курсором
Альтернатива циклу FOR.
🔟 Курсор в условии IF
Решение на основе курсора.
🧩 Заключение
Курсоры (CURSOR) в Oracle SQL дают вам возможность построчной обработки данных, позволяя применять условную логику, циклы, действия по каждой записи.
💡 Важно помнить:
Используйте
FOR rec IN cursor LOOP— самый удобный способНе забывайте закрывать курсоры (
CLOSE)Для массовых операций лучше использовать DML — курсоры нужны для сложной логики