FETCH
Описание
FETCH возвращает одну строку за один раз в программу из активного набора курсора. Первая операция FETCH возвращает первую строку из активного набора. Последующие инструкции FETCH перемещает курсор по активному набору возвращая по одной строке за один раз, пока не станет невозможным найти строку и SQLCODE не вернет значение 100.
Курсор это односторонний указатель на упорядоченный набор строк возвращаемых выражением SELECT в инструкции DECLARE CURSOR. Курсор позволяет последовательный доступ к отысканным строкам. Существует четыре связанных инструкции для работы с курсором:
Стадия | Инструкция | Назначение |
---|---|---|
1 | DECLARE CURSOR |
Объявляет курсор. Инструкция SELECT определяет строки возвращаемые для курсора. |
2 | OPEN |
Отыскивает строки определенные, чтобы вернуть, с помощью DECLARE CURSOR. Результирующие строки становятся текущим набором курсора. |
3 | FETCH |
Возвращает текущую строку из текущего набора, начиная с первой строки. |
4 | CLOSE |
Закрывает курсор и освобождает системные ресурсы. |
Количество, размер, тип данных и порядок столбцов в FETCH должно быть такимже, как перечислено в выражении запроса в соответствующей инструкции DECLARE CURSOR.
Эта инструкция может быть использована в SQL и в DSQL.
Синтаксис
SQL:
FETCH cursor [INTO :hostvar [[INDICATOR] :indvar] [, :hostvar [[INDICATOR] :indvar] ...]];
DSQL:
FETCH cursor {INTO | USING} SQL DESCRIPTOR xsqlda
Для BLOB:
Смотри: FETCH (BLOB)
Аргумент | Описание |
---|---|
cursor |
Имя открытого курсора из которого выбираются строки. |
:hostvar |
Переменная базового языка, чтобы сохранить значения возвращенные с помощью FETCH. |
:invar |
Индикаторная переменная, для сообщения, что столбец содержит неизвестное или NULL значение. |
[INTO | USING] SQL DESCRIPTOR |
ООпределяет, что значения должны быть возвращены в определенном XSQLDA. |
xsqlda |
XSQLDA переменная базового языка. |
Примеры
SQL:
Следующая внедренная инструкция SQL выбирает столбец из активного набора курсора:
EXEC SQL FETCH PROJ_CNT INTO :department, :hcnt;