DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Курсорные циклы FOR

В обоих циклах выборки, описанных выше, необходимо обрабатывать курсоры явным образом с помощью операторов OPEN, FETCH и CLOSE. В PL/SQL имеется упрощенный вид цикла — курсорный цикл FOR, в ко­тором управление обработкой курсора осуществляется неявно. Рассмот­рим пример:
Необходимо отметить два важных аспекта, касающихся этого приме­ра. Во-первых, запись v_StudentOata не объявляется в разделе объявлений блока. Эта переменная неявно объявляется компилятором PL/SQL, подоб­но индексу цикла в числовых циклах FOR. Она имеет тип c_HistoryStu-
dents%ROWTYPE, а ее область действия - цикл FOR. Неявное объявление индекса цикла и область действия этого объявления такие же, как и в чис­ловом цикле FOR (см. главу 3). Поэтому нельзя присваивать какое-либо значение переменной цикла внутри курсорного цикла FOR.
Во-вторых, курсор c_HistoryStudents открывается, считывается и за­крывается неявным образом. Открывается он перед началом цикла. Пе­ред каждой итерацией цикла атрибут %FOUND проверяется для установления наличия строк в активном наборе. Когда активный набор полностью выбран, курсор закрывается с окончанием цикла.
Курсорные циклы FOR хороши тем, что, обеспечивая функциональные возможности циклов выборки курсоров, они делают процесс считывания данных доступнее и понятнее, упрощая при этом синтаксис программы.


 









jAntivirus