double arrow

Оператор цикла FOR

ОПЕРАТОР ВЕТВЛЕНИЯ

ОПЕРАТОР ВЫЗОВА ПРОЦЕДУРЫ

Оператор осуществляет вызов хранимой процедуры. Применяется в хранимых процедурах и триггерах.

Синтаксис:

EXECUTE PROCEDURE name [LIST_: param] [RETURNING_VALUES LIST_:param];

name – имя вызываемой процедуры. Сама процедура должна быть пред­варительно создана в базе командой CREATE PROCEDURE.

LIST_: param ::=:param [, LIST_: param], заданный после имени про­цедуры name – это список входных параметров процедуры (если проце­дура не требует параметров, то может отсутствовать). Отдельные пара­метры могут быть константами или переменными. Перед именем пере­менной ставится «:», кроме случаев использования контекстных переменных NEW и OLD.

LIST_:param, заданный после RETURNING_VALUES – список возвращаемых процедурой значений (если процедура возвращает значения). Перед именем возвращаемых значений ставится «:». В триггерах и процедурах использование вызовов других процедур аналогично использованию подпрограмм в традиционных алго­ритмических языках.

Замечание. При вызове из ISQL или прикладных программ на базо­вых языках синтаксис вызова отличается от приведенного.

Оператор ветвления IF ... THEN ... ELSE обеспечивает выполнение того или иного действия в зависимости от истинности проверяемого ус­ловия.

Синтаксис:

IF ( <condition>) THEN <compound_statement> [ELSE <compound_statement>]

<compound_statement> ::= {< block> | statement;} (см. выше)

<condition> – выражение, которое может принимать значение истина или ложь.

Если условие выполнено (значение TRUE), то выполняется оператор, следующий за конструкцией THEN, иначе выполняется оператор, сле­дующий за конструкцией ELSE, если она присутствует.

Например:

IF (a<0) THEN

b = -а; ELSE

b = а;

Цикл FOR обеспечивает выполнение заданного оператора для каж­дой строки команды SELECT. Цикл FOR может использоваться в храни­мых процедурах и триггерах.

Синтаксис:

FOR

< select_expr> DO

< compound_statement>

FOR SELECT – инструкция цикла, которая отыскивает строку, ука­занную в <select_expr> и для каждой строки исполняет оператор или блок, указанный после ключевого слова DO.

Конструкция <select_expr> представляет собой обычную команду SELECT, к которой добавлена обязательная здесь опция INTO и которая должна быть последней опцией команды SELECT.

В опции INTO перечисляются имена локальных переменных или па­раметров процедуры, которым присваиваются соответствующие значения выбранных командой SELECT столбцов. Имена переменных должны предваряться символом":".

В качестве примера возьмем фрагмент процедуры PAUTHOR.

FOR SELECT AUTHOR, AUNAME FROM TAUTHOR

INTO :AUTHOR, :AUNAME DO

IF(AUNAME>P1) THEN IF(AUNAME<P2) THEN SUSPEND;

Здесь оператор SUSPEND обеспечивает передачу вызывающему приложению данных, удовлетворяющих дополнительному условию.


Сейчас читают про: