CLOSE в Oracle SQL. Введение
Курсоры в PL/SQL позволяют обрабатывать строки результата запроса по одной. Но после завершения работы с курсором его необходимо закрыть, чтобы избежать утечек памяти и системных ресурсов.
Для этого используется оператор CLOSE.
Он прост, но критически важен при работе с явными курсорами.
🔤 Написание
🧮 Пример:
🔄 Где часто используется
При завершении работы с явным курсором
В циклах обработки данных
В PL/SQL процедурах
В управлении ресурсами при большом объёме данных
В блоках с
OPEN→FETCH→CLOSE
🧪 10 Примеров использования с пояснениями
1️⃣ Полный цикл курсора: OPEN → FETCH → CLOSE
Стандартная работа с курсором и обязательное закрытие.
2️⃣ CLOSE после одного FETCH
Даже если курсор используется один раз — его всё равно нужно закрыть.
3️⃣ Работа с параметрическим курсором
Параметры не мешают правилу: открыл — закрой.
4️⃣ Проверка — открыт ли курсор
Полезно, если не уверены открыт ли он.
5️⃣ Использование EXCEPTION на случай забывания CLOSE
Если не закрыть курсор — ошибки неизбежны.
6️⃣ Закрытие после EXIT из цикла
Закрытие курсора — финальный этап любого цикла.
7️⃣ Закрытие в EXCEPTION-блоке (гарантия освобождения)
Всегда оставляйте CLOSE даже в случае ошибок.
8️⃣ Работа с несколькими курсорами
Каждый курсор — свой CLOSE.
9️⃣ Проверка: не закрыт ли курсор дважды
Повторное закрытие вызывает ошибку.
🔟 Обработка в процедуре
Хорошая практика в процедурах — закрыть курсор явно.
🧩 Заключение
Оператор CLOSE завершает работу курсора и освобождает ресурсы. Это особенно важно при работе с большими наборами данных, повторных вызовах и в корпоративных процедурах.
💡 Запомни:
Всегда закрывай курсор после использования
Используй
c%ISOPENдля проверкиCLOSE— последний шаг послеOPENиFETCHНикогда не закрывай один и тот же курсор дважды