Курсор (базы данных)

Поделись знанием:
Перейти к: навигация, поиск

Курсор — это объект базы данных, который позволяет приложениям работать с записями «по-одной», а не сразу с множеством, как это делается в обычных SQL командах. В некоторых реализациях информационно-логического языка SQL (Oracle, Microsoft SQL Server) — получаемый при выполнении запроса результирующий набор и связанный с ним указатель текущей записи.





Курсор в PL/SQL

В PL/SQL поддерживаются два типа курсоров: явные и неявные. Явный курсор объявляется разработчиком, а неявный курсор не требует объявления.

Курсор может возвращать одну строку, несколько строк или ни одной строки. Для повторного создания результирующего набора для других значений параметров курсор следует закрыть, а затем повторно открыть.

Курсор может быть объявлен в секциях объявлений любого блока PL/SQL, подпрограммы или пакета.

Операторы управления явным курсором

  • Оператор DECLARE выполняет объявление явного курсора.
  • Оператор OPEN открывает курсор, создавая новый результирующий набор на базе указанного запроса.
  • Оператор FETCH выполняет последовательное извлечение строк из результирующего набора от начала до конца.
  • Оператор CLOSE закрывает курсор и освобождает занимаемые им ресурсы

Атрибуты курсора

  •  %ISOPEN — возвращает значение TRUE, если курсор открыт.
  •  %FOUND — определяет, найдена ли строка, удовлетворяющая условию.
  •  %NOTFOUND — возвращает TRUE, если строка не найдена.
  •  %ROWCOUNT — возвращает номер текущей строки.

См. также

Напишите отзыв о статье "Курсор (базы данных)"

Примечания

Ссылки

  • [www.intuit.ru/department/database/cdba/14/ SQL и процедурно-ориентированные языки]
  • [www.postgresql.org/docs/8.3/interactive/plpgsql-cursors.html Документация] для PostgreSQL
  • [dev.mysql.com/doc/refman/5.5/en/cursors.html Документация] для MySQL

Отрывок, характеризующий Курсор (базы данных)

– Что же, не будешь еще? А у меня славная карточка приготовлена. – Как будто более всего его интересовало веселье самой игры.
«Всё кончено, я пропал! думал он. Теперь пуля в лоб – одно остается», и вместе с тем он сказал веселым голосом:
– Ну, еще одну карточку.
– Хорошо, – отвечал Долохов, окончив итог, – хорошо! 21 рубль идет, – сказал он, указывая на цифру 21, рознившую ровный счет 43 тысяч, и взяв колоду, приготовился метать. Ростов покорно отогнул угол и вместо приготовленных 6.000, старательно написал 21.
– Это мне всё равно, – сказал он, – мне только интересно знать, убьешь ты, или дашь мне эту десятку.
Долохов серьезно стал метать. О, как ненавидел Ростов в эту минуту эти руки, красноватые с короткими пальцами и с волосами, видневшимися из под рубашки, имевшие его в своей власти… Десятка была дана.
– За вами 43 тысячи, граф, – сказал Долохов и потягиваясь встал из за стола. – А устаешь однако так долго сидеть, – сказал он.
– Да, и я тоже устал, – сказал Ростов.
Долохов, как будто напоминая ему, что ему неприлично было шутить, перебил его: Когда прикажете получить деньги, граф?
Ростов вспыхнув, вызвал Долохова в другую комнату.
– Я не могу вдруг заплатить всё, ты возьмешь вексель, – сказал он.
– Послушай, Ростов, – сказал Долохов, ясно улыбаясь и глядя в глаза Николаю, – ты знаешь поговорку: «Счастлив в любви, несчастлив в картах». Кузина твоя влюблена в тебя. Я знаю.
«О! это ужасно чувствовать себя так во власти этого человека», – думал Ростов. Ростов понимал, какой удар он нанесет отцу, матери объявлением этого проигрыша; он понимал, какое бы было счастье избавиться от всего этого, и понимал, что Долохов знает, что может избавить его от этого стыда и горя, и теперь хочет еще играть с ним, как кошка с мышью.