Закрытие курсора
Оператор CLOSE запрещает курсор и активное множество становится неопределённым.
Синтаксис:
cursor_name |
Имя не открытого явного курсора. |
cursor_variable_name
|
Имя переменной курсора объявленной в окружении PL/SQL и передаваемая PL/SQL как связанная переменная. Тип данных главной переменной курсора совместим с возвращаемым типом любой переменной PL/SQL курсора. В операторах SQL главные переменные должны иметь префикс двоеточие. |
Пример оператора CLOSE:
CLOSE c1;
Когда курсор закрыт, его можно заново открыть. Любая другая операция с закрытым курсором вызывает исключение INVALID_CURSOR.
Неявные курсоры
Oracle неявно открывает курсор для обработки каждого оператора SQL с которым не связан явно объявленный курсор. PL/SQL позволяет ссылаться на последний неявный курсор как курсор "SQL".
Нельзя использовать операторы OPEN, FETCH и CLOSE для управления курсором SQL. Но можно использовать атрибуты курсора для получения информации о последнем выполненном операторе SQL.
Цикл FOR для курсоров
В большинстве ситуаций, которые требуют явного курсора, можно вместо них использовать курсорный цикл FOR вместо операторов OPEN, FETCH и CLOSE.
Курсорный цикл FOR неявно объявляет индекс цикла как запись, которая представляет строку в таблице базы данных, открывает курсор, неоднократно выбирает строки значений из активного множества в поля записи, затем закрывает курсор, затем закрывает курсор, когда все строки были обработаны. В следующем примере, курсорного цикла FOR неявно объявляет emp_rec как запись
DECLARE
CURSOR c1 IS
SELECT ename, sal, hiredate, deptno FROM emp;
...
BEGIN
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.