суббота, 18 июня 2011 г.

Оператор CASE с перебором вариантов

Сегодня хотел статью о WEB-строительстве опубликовать, но – посмотрел на свой план на июнь – и ужаснулся! Про язык PL/SQL почти не было опубликовано статей. Поэтому – надо исправляться. У меня как раз была заготовка по данной теме, вот ее сегодня и опубликую – тоже посвящена статья будет оператору CASE.

Кстати, пока не забыл – мой украинский коллега (по работе) решил на днях активно заняться изучением английского языка. Как он рассказал – большую известность там приобрела школа английского языка, туда он и запишется (у этой школы есть свой сайт в интернете, где и можно записаться на курсы). Те, кто с Украины – может тоже изучить в свое удовольствие американский английский язык в этой школе.

Надо будет подобную школу и рядом со своим домом поискать. Но – это будет в следующий раз, а пока – вернемся к статьей. В PL/SQL имеется оператор CASE с перебором вариантов, похожий на простой оператор CASE.

У оператора CASE с перебором вариантов нет переключателя. Кроме того, предложение WHEN этого оператора содержат условия поиска, которые возвращают логические значения и не могут быть выражениями любого типа данных:

DECLARE nn Char(1);
BEGIN
  nn := ‘2’;
CASE
  WHEN nn = ‘1’ THEN dbms_output.put_line(‘nn равно одному’);
  WHEN nn = ‘2’ THEN dbms_output.put_line(‘nn равно двум’);
  WHEN nn = ‘3’ THEN dbms_output.put_line(‘nn равно трем’);
ELSE
  dbms_output.put_line(‘nn ничему не равно’);
END CASE;
END;

Условия поиска проверяются последовательно. Логическое значение каждого условия поиска определяет, какое предложение WHEN будет выполняться. Если условие поиска возвращает значение TRUE, то выполняется предложение THEN, следующее за этим условием поиска. Если какое-либо предложение WHEN выполнено, управление передается следующему оператору после END CASE, таким образом – остальные условия поиска не проверяются.

Если ни одно из условий не возвращает значение TRUE, выполняется предложение ELSE. Предложение ELSE не обязательно для использования. Однако, если опустить предложение ELSE, PL/SQL добавляет следующее неявное предложение ELSE:

ELSE RAISE case_not_found;

Исключения, возникающие во время выполнения оператора CASE, обрабатываются в обычном порядке. Это означает, что нормальное выполнение программы прекращается и управление передается разделу обработки исключений блока или подпрограммы PL/SQL.

Вот такие вот есть операторы CASE в языке PL/SQL (пока не начал изучать этот язык – даже не подозревал о том, что такое есть). На следующей неделе опубликую еще одну статью по теме PL/SQL (пока будут тоже управляющие конструкции). И – последнюю статью по плану опубликую уже в самом конце июня. Вот такой план.

Комментариев нет:

Отправить комментарий