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

Инструкция FETCH

Инструкция FETCH — это одна из четырех команд, используемых при обработке курсоров, наряду с DECLARE, OPEN и CLOSE. Курсоры позволяют вести обработку по одной строке, а не работать сразу со всем набором. Инструкция FETCH помещает курсор в конкретную строку и извлекает эту строку из результирующего набора.

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


Синтаксис SQL 2003

SQL 2003 Syntax

FETCH [{NEXT | PRIOR | FIRST | LAST |

{ABSOLUTE | RELATIVE int}}

FROM] имя_курсора [INTO переменная 1 [, …]]


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

NEXT

Указывается, что курсор должен вернуть запись, которая идет сразу за текущей, и сделать текущей ту запись, которую курсор вернул. Предложение FETCH NEXT задано для инструкции FETCH по умолчанию. При этом первая запись извлекается, если инструкция FETCH осуществляет первую выборку для курсора.

PRIOR

Указывается, что курсор должен вернуть запись, которая идет непосредственно перед текущей, и сделать текущей ту запись, которую курсор вернул. Инструкция FETCH PRIOR не возвращает запись, если она осуществляет первую выборку для курсора.

FIRST

Указывается, что курсор должен вернуть запись, которая является для курсора первой, и сделать ее текущей.

LAST

Указывается, что курсор должен вернуть запись, которая является для курсора последней, и сделать ее текущей.

ABSOLUTE int

Указывается, что курсор должен вернуть запись, которая имеет номер int в наборе записей курсора, считая сверху (если int — положительное целое число) или считая снизу (если int — отрицательное целое число), и сделать эту запись текущей для курсора. Если int ~ О, строка не возвращается. Если значение int переносит курсор за пределы набора, тогда курсор устанавливается после последней строки (если int -положительное число) или перед первой строкой (если int — отрицательное число).

RELATIVE int

Указывается, что курсор должен вернуть запись, идущую через int записей после текущей (если int — положительное число) или через int записей перед текущей (если int — отрицательное число). Если int= О, возвращается текущая строка. Если значение int переносит курсор за пределы набора, тогда курсор устанавливается после последней строки (если int — положительное число) или перед первой строкой (если int — отрицательное число).

[FROM] имя_курсора

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

INTO переменная! [, …]

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

Источник