DeepEdit!

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

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Неявные курсоры

PL/SQL объявляет неявный курсор и работает с ним каждый раз, когда вы выполняете DML-оператор SQL (INSERT, UPDATE или DELETE) или оператор SELECT INTO, который возвращает одну строку из базы данных и за писывает ее непосредственно в структуру данных PL/SQL. Такие курсоры называются неявными, потому что Oracle неявно (автоматически) выполняет множество операций обслуживания курсоров, таких как выделение памяти курсору, открытие курсора, выборка данных и т. д.
Неявный курсор - это оператор SELECT, обладающий следующими характеристиками:
Оператор SELECT используется в исполняемом разделе блока и, в отличие от явных курсоров, не объявляется в разделе объявлений.
Запрос включает в себя предложение INTO (или BULK COLLECT INTO для пакетной обработки). Предложение INTO является частью языка PL/SQL (а не SQL) и служит механизмом передачи данных из базы данных в локальные структуры данных PL/SQL.
Не требуется открывать оператор SELECT, выбирать из него данные и закрывать его, все это происходит автоматически.
Неявный курсор имеет такой формат:

Oracle выполняет открытие неявного курсора, выборку из него данных и закрытие автоматически; эти действия не подконтрольны программисту. Однако вы можете получить информацию о последней выполненной команде SQL, проанализировав значения атрибутов неявного курсора (об этом мы поговорим ниже в разделе «Атрибуты неявного курсора SQL»).
В последующих разделах под неявным курсором мы будем понимать оператор SELECT INTO, извлекающий (или пытающийся извлечь) одну строку данных. Позже будет рассмотрен оператор SELECT BULK COLLECT INTO, который позволяет извлекать несколько строк данных посредством одного неявного курсора.
Приведем пример неявного курсора, который извлекает строку и помещает ее в запись:
 









jAntivirus