Конструкция FOR SELECT ... DO

Конструкция FOR SELECT ... DO

Для поиска множества строк в процедуре мы используем конструкцию FOR SELECT ... DO. Ее синтаксис:

FOR

<выражение-выбора>

INTO <:переменная [, :переменная [, ...]] DO

<составной-оператор>;

<выражение-выбора> может быть любым запросом выбора, использующим соединения, объединения, просмотры, другие процедуры выбора, вызовы функций и т.д. в любой допустимой комбинации.

Оператор FOR SELECT отличается от стандартного оператора SELECT тем, что требует наличия переменных, в которые помещаются значения столбцов, и спецификации полей.

<составной-оператор> может быть одним оператором SUSPEND или блоком из двух или более операторов. <составной-оператор> может иметь вложенные составные операторы.

FOR SELECT ... DO является конструкцией цикла, которая отыскивает строку, заданную в <выражении-выбора>, и выполняет для каждой строки оператор или блок операторов, следующих после DO.

Предложение INTO <переменные> обязательно и должно быть последним[116].

Обработка в цикле

На рис. 30.2 проиллюстрированы типичные виды деятельности, которые могут выполняться внутри циклов для генерации выхода в хранимой процедуре выбора.

Рис. 30.2. Операции в процедуре выбора

В следующих примерах мы посмотрим на то, как комбинации операций в PSQL могут представить более интересную область SQL.