Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы-ответы (БД экзамен).docx
Скачиваний:
297
Добавлен:
25.05.2018
Размер:
2.35 Mб
Скачать

39. Pl/sql. Условные операторы if.

В Oracle, оператор IF-THEN-ELSE используется для выполнения кода при условии TRUE (истинно), или выполнения другого кода, если условие принимает значение FALSE (ложь).

Существует три различных синтаксиса условных операторов этого типа.

Синтаксис #1: IF-THEN.

Используете синтаксис IF-THEN, если хотите выполнять операторы, только когда условие истинно.

IF УСЛОВИЕ THEN

{…выполняется, когда УСЛОВИЕ истинно (TRUE)…}

END IF;

Синтаксис #2: IF-THEN-ELSE.

Если вы хотите выполнить один набор предложений, когда условие истинно, используете синтаксис IF-THEN-ELSE, или другой набор предложений, если условие ложно.

IF УСЛОВИЕ THEN

{… выполняется, когда УСЛОВИЕ истинно (TRUE)…}

ELSE

{… выполняется когда УСЛОВИЕ ложно (FALSE)…}

END IF;

Синтаксис #3: IF-THEN-ELSIF.

Используете синтаксис IF-THEN-ELSIF-ELSE, если хотите выполнить один набор предложений, когда УСЛОВИЕ1 принимает значение истина (TRUE); другой набор предложений, когда УСЛОВИЕ2 истинно (TRUE); или третий набор предложений, когда все предыдущие условия (то есть: УСЛОВИЕ1 и УСЛОВИЕ2) являются ложными (FALSE).

IF УСЛОВИЕ1 THEN

{… выполняется, когда УСЛОВИЕ1 истинно (TRUE)…}

ELSIF УСЛОВИЕ2 THEN

{… выполняется, когда УСЛОВИЕ2 истинно (TRUE)…}

ELSE

{… выполняется, когда оба: УСЛОВИЕ1 и УСЛОВИЕ2 ложно (FALSE)…}

END IF;

Примечание.

  • После того, как условие истинно (TRUE), оператор IF-Then-Else будет выполнять заявленный код и не оценит условие дальше.

  • Если условие ложно (FALSE), то выполняется часть ELSE оператора IF-Then-Else.

  • Важно отметить, что участки ELSIF и ELSE являются дополнительными.

40. Pl/sql. Циклы.

Циклы предназначены для многократного исполнения конкретных операций. В PL/SQL есть 3 типа циклов:

1. Безусловные циклы (бесконечные) – выход из них не предусмотрен. Потому как такие циклы специфичны и применяются редко, то организуются они при помощи условных циклов. Условие возможно вообще не указывать или вместо него применять константу. Примером подобного цикла является машина LOOP ... END LOOP.

2. Условные циклы – команды выполняются прежде тех пор, пока истинно условие. Пример, WHILE условие LOOP ... END LOOP.

3. Циклы со счетчиком – цикл, в коем счетчик меняет свое значение с начального прежде конечного с определенным этапом, и для любого значения счетчика выполняется последовательность команд, находящихся в цикле. Представителем данного типа циклов является машина FOR счетчик IN стартовое значение...конечное значение LOOP ... END LOOP.

Самый простой цикл, написанный на PL/SQL, выглядит так:

LOOP

NULL;

END LOOP

/

Такой цикл совершенно бессмысленен и небезопасен для экземпляра БД, так как не имеет выхода. Из таких циклов есть три способа выхода:

1. EXIT – это безусловный выход. Обычно он используется вместе с оператором IF, в котором проверяется условие выхода.

2. EXIT WHEN – в этом случае выход осуществляется пр при выполнении условия, описанного после WHEN.

3. GOTO – в этом случае выход из цикла осуществляется с переходом во внешний контекст, заданный меткой.