Предложение INTO запроса является частью оператора FETCH. Оператор FETCH имеет две формы:
FETCH имя_курсора INTO список_переменных;
и
FETCH имя_курсора INTO record
где имя_курсора обозначает предварительно объявленный и открытый курсор, список_переменных представляет собой список предварительно объявленных переменных PL/SQL, разделенных запятыми, a record это предварительно объявленная запись PL/SQL. В любом случае переменная (переменные) в конструкции INTO должна иметь тип, совместимый со списком выбора запроса. Если воспользоваться созданным курсором c_Buildings, то следующий оператор FETCH будет правильным:
FETCH c_Buildings INTO v__Building;
В примере, приведенном ниже, демонстрируются правильный и неправильный операторы FETCH:
После каждого считывания FETCH указатель активного набора увеличивается и переходит к следующей строке. Таким образом, каждый оператор FETCH будет последовательно возвращать строки активного набора до тех пор, пока не будет передан весь набор.
Для определения момента считывания всего набора используется атрибут %NOTFOUND. При выполнении последнего считывания FETCH выходным переменным не будут присваиваться новые значения, т.е. они будут содержать прежние значения.
Внимание
Операторы FETCH такого вида извлекают по одной строке за раз. В 0гас1е8 и выше можно извлекать более одной строки за раз, используя сборную конструкцию и предложение BULK COLLECT (см. главу 12).
< Предыдущая | Следующая > |
---|