Погружение в базы данных Oracle

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Купить книгу

SQL без слёз

Цель книги заключается в том, чтобы научить любого человека работать с реляционными базами данных и получать из них необходимую информацию посредством выполнения SQL-запросов.

Скачать книгу

 ›  ›  ›  › Команда GOTO в PL/SQL Oracle

Команда GOTO в PL/SQL Oracle

Команда GOTO выполняет безусловный переход к другой исполняемой команде в том же исполняемом разделе блока PL/SQL. Как и в случае с другими конструкциями языка, уместное и осторожное применение GOTO способно расширить возможности ваших программ.

Синтаксис команды GOTO

GOTO имя_метки;

Здесь имя_метки — имя метки, идентифицирующей целевую точку перехода.

В коде метка выглядит так:

<<имя_метки>>

Имя метки заключается в двойные угловые скобки. Когда компилятор PL/SQL встречает команду GOTO, он немедленно передает управление первой исполняемой команде, следующей за меткой. Блок кода в следующем примере содержит и метку, и команду GOTO:

BEGIN
   GOTO second_output;
   DBMS_OUTPUT.PUT_LINE('Эта строка никогда не выполняется.');
   <<second_output>>
   DBMS_OUTPUT.PUT_LINE('Мы здесь!');
END;

На использование команды GOTO налагаются некоторые ограничения:

  • За меткой должна следовать хотя бы одна исполняемая команда.
  • Целевая метка должна находиться в пределах области действия оператора GOTO.
  • Целевая метка должна находиться в той же части блока PL/SQL, что и оператор GOTO.

Несмотря на стойкое предубеждение против команды GOTO, иногда она бывает очень полезна. Например, в некоторых случаях она способна упростить логику программы. С другой стороны, поскольку PL/SQL включает так много разнообразных управляющих конструкций и средств модульного разбиения программного кода, практически для любой задачи можно найти более удобное решение, не связанное с использованием GOTO.

Метки: , .

Записи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *