Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Инструкция CLOSE CURSOR

Инструкция CLOSE CURSOR закрывает курсор, созданный на серверной стороне соединения с помощью инструкции DECLARE CURSOR.


Синтаксис SQL 2003

CLOSE имя курсора


Ключевые слова

имя_курсора

Имя курсора, ранее созданного с помощью инструкции DECLARE CURSOR.


Общие правила

Инструкция CLOSE закрывает курсор и удаляет связанный с ним результирующий набор данных. Во всех платформах снимаются блокировки, связанные с курсором, хотя это и не указано в стандарте ANSI. Пример:

CLOSE author_names_cursor;

Вы также можете закрыть курсор неявно, используя инструкцию COMMIT или, для курсоров, которые были определены с предложением WITH HOLD, с помощью инструкции ROLLBACK.


DB2

В DB2 для инструкции CLOSE поддерживается дополнительное необязательное предложение WITH.

CLOSE имя_курсора [WITH RELEASE]

Где:

WITH RELEASE

Производится попытка снять все блокировки чтения, связанные с курсором. Заметьте, что DB2 не всегда может снять все блокировки, поскольку некоторые блокировки могут использоваться другими операциями.

Предложение WITH RELEASE игнорируется для курсоров уровня изоляции 3 CS или UR, если курсор определяется в методе, если курсор определяется в функции или если курсор определяется в хранимой процедуре, которая вызывается функцией или методом. Предложение WITH RELEASE может привести к таким аномалиям, как фантомное чтение или невоспроизводимое чтение, при работе на уровнях изоляции RS и RR. За подробными объяснениями уровней изоляции, в том числе фантомных чтений и невоспроизводимых чтений, обращайтесь к пункту SET TRANSACTION ISOLATION LEVEL.


PostgreSQL

Платформа PostgreSQL поддерживает стандартный синтаксис ANSI. В PostgreSQL команда CLOSE неявно выполняется для каждого открытого курсора при завершении транзакции с помощью инструкций COMMIT или ROLLBACK.


SQL Server

В Microsoft SQL Server поддерживается стандартный синтаксис ANSI, а также дополнительное ключевое слово GLOBAL.

CLOSE [GLOBAL] имя курсора

Где:

GLOBAL

Идентифицирует ранее определенный курсор как глобальный.

Согласно стандарту ANSI при закрытии курсора удаляется результирующий набор данных. Блокировка является физическим свойством каждой платформы и входит в ANSI SQL. Тем не менее все описываемые здесь платформы снимают блокировки, созданные курсором. Еще одной деталью физической реализации является то, что SQL Server не переводит память, занимаемую курсором, в общий пул памяти. Для завершения этого перевода вы должны подать команду DEALLOCATE ими_курсора.

В данном примере для Microsoft SQL Server производится открытие курсора и выборка набора данных обо всех служащих, чья фамилия начинается па «К».

Источник