Инструкция FETCH
Инструкция FETCH возвращает текущую строку (в непрокручиваемом курсоре) или заданную строку (в прокручиваемом курсоре), выполняет разбор строки и помещает значения столбцов в предопределенный набор переменных. Синтаксис этой инструкции в Transact-SQL следующий. Количество столбцов, заданных в инструкции select определения курсора, должно в точности соответствовать количеству переменных в предложении into инструкции fetch. К тому же Oracle использует таблично-ориентированные структуры, которые могут быть определены и использованы для хранения значений, полученных из курсора. Строки непрокручиваемого курсора обычно смещаются в цикле до тех пор, пока не будет обработана последняя строка. Прокручиваемые курсоры можно использовать как часть более сложной логики обработки. Инструкция CLOSE очищает память, снимает блокировки и делает неопределенным результирующий набор данных курсора. Синтаксис этой инструкции следующий. Курсор может быть снова открыт с помощью инструкции OPEN. В дополнение к четырем основным операциям с курсором, описанным в настоящем разделе, Transact-SQL требует использования инструкции deallocate, которая высвобождает все структуры данных, составляющие курсор. Как уже отмечалось, курсоры используются для построчных операций; при этом их обработка помещается вовнутрь цикла. Следующие примеры достаточно просты. Наша главная цель — показать, как объявляется, открывается, смещается и закрывается курсор, обращая внимание на существующие различия в разных реализациях СУБД. Процедура SP_PRINTCUSTPHONE объявляет и открывает курсор cur_custphone, основанный на запросе, извлекающем записи из представления V_CONTACT_LIST, а затем разбирает записи по одной и выводит их на печать на стандартное устройство вывода. Термин “стандартное устройство вывода” идентифицирует устройство, на которое //На заметку программа направляет свой вывод. Обычно таким устройством является дисплей или монитор. Стандартный вывод может быть переназначен на файл операционной системы.