Курсор - это средство языка SQL, позволяющее с помощью набора специальных операторов получить построчный доступ к результату запроса к БД.
Объявление курсора DECLARE <имя_курсора> [INSENSITIVE] [SCROLL] CURSOR FOR <подзапрос> [<предложение для обновления>]; Этот оператор не является выполняемым, он только связывает имя курсора со спецификацией курсора.
• INSENSITIVE – нечувствительный – изменения, производимые другими операторами, будут игнорироваться, пока курсор открыт
• SCROLL – позволяет извлекать строки в произвольном порядке
• предложение для обновления FOR [{READ ONLY |UPDATE |[OF имя столбца]]
Открытие курсора OPEN CURSOR <имя курсора>; Оператор открытия курсора должен быть первым в серии выполняемых операторов, связанных с заданным курсором. При выполнении этого оператора производится подготовка курсора к работе над ним.
Построчное извлечения данных из курсора FETCH [[orientation]FROM] имя курсора INTO целевая спецификация. , . . ; orientation: : = NEXT | PRIOR | FIRST | LAST | {ABSOLUTE | RELATIVE спецификация значения}
INTO - содержит список спецификаций назначения (список имен переменных основной программы в случае встроенного SQL или имен "выходных" параметров в случае модуля SQL). Число и типы данных в списке назначений должны совпадать с числом и типами данных списка выборки спецификации курсора.