Структура блока PL/SQL

Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Какова структура блока программы PL SQL в базе данных OracleПродолжаем разговор о PL/SQL. Начнем рассмотрение организации и синтаксиса программы на PL/SQL: структурой блока, набором символов, а также правилами для идентификаторов, разделителей операторов и комментариев.

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


Оглавление статьи[Показать]


Блок - это конструкция, обеспечивающая выполнение фрагмента кода и определяющая границы видимости переменных и область действия обработчиков исключений. PL/SQL позволяет создавать анонимные блоки (блоки кода, не имеющие названия) и именованные блоки (это могут быть процедуры, функции или триггеры).

В последующих статьях моего блога мы рассмотрим структуру блока и подробно остановимся на анонимных блоках. Различные виды именованных блоков будут описаны далее.

 

Разделы блока PL/SQL

Блок PL/SQL может включать в себя до четырех разделов (см. схему ниже), лишь один из которых является обязательным.

Заголовок

IS

   Раздел объявлений

BEGIN

   Раздел исполнения

EXCEPTION

   Раздел исключений

END;

Обзор структуры блока программы PL SQL в СУБД Oracle

Заголовок

      Используется только для именованных блоков. Заголовок определяет, каким образом будет вызываться именованный блок или про-грамма. Необязательный раздел.

Раздел объявлений

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

Раздел исполнения

     Содержит операторы, которые будет выполнять ядро PL/SQL при исполнении блока. Обязательный раздел. 

 

Анонимные блоки PL/SQL

Если кто-то хочет сохранить анонимность, он не называет своего имени. Именно так и поступает анонимный блок в PL/SQL (см. схему ниже): в нем просто отсутствует раздел заголовка, такой блок начинается с DECLARE или BEGIN. Это означает, что его нельзя будет вызвать из какого-то другого блока, так как не на что установить ссылку. Анонимные блоки служат контейнерами для операторов PL/SQL и обычно включают в себя вызовы процедур и функций.

В общем виде синтаксис анонимного блока PL/SQL будет таким:

[ DECLARE

. . . объявления .. . ]

BEGIN

... один или несколько исполняемых операторов .. .

[ EXCEPTION

... операторы обработки исключений ... ]

END;

В квадратные скобки заключены необязательные элементы конструкции. В блоке должны быть операторы BEGIN и END, а также хотя бы один исполняемый оператор. Рассмотрим несколько примеров анонимных блоков:

• Наиболее короткий анонимный блок:


BEGIN
   DBMS_OUTPUT.PUT_LIN E(SYS DATE);
END;

• Блок с такой же функциональностью, в который добавлен раздел объявлений:

DECLARE
    l_right_now VARCHAR2(9);
BEGIN
    DBMS_OUTPUT.PUT_LINE (’Hello world');
END;

Анонимный блок, не имеющий разделов объявлений и исключений (только исполнение):

BEGIN
       l_right_now := SYSDATE;
       DBMS_OUTPUT.PUT_LINE(l_right_now);
END;

• Тот же блок с добавленным обработчиком исключений:

DECLARE
   l_right_now VARCHAR2(9);
BEGIN
   l_right_now := SYSDATE;
   DBMS_OUTPUT.PUT_LINE(l_right_now);
EXCEPTION
   WHEN VALUE_ERROR THEN
   DBMS_OUTPUT.PUT_LINE('I bet l_right_now is too small '
        || 'for the default date format!')
END;

Вас заинтересует / Intresting for you:

Oracle Text и PL/SQL: многоязы...
Oracle Text и PL/SQL: многоязы... 3477 просмотров Максим Николенко Fri, 18 Oct 2019, 12:41:03
Сопровождение объектных типов ...
Сопровождение объектных типов ... 3705 просмотров Максим Николенко Sun, 03 Nov 2019, 09:18:04
 Версии PL/SQL и Oracle 12c
Версии PL/SQL и Oracle 12c 3409 просмотров Александров Попков Tue, 21 Nov 2017, 13:28:01
Объявление переменных, констан...
Объявление переменных, констан... 16102 просмотров Stas Belkov Sun, 16 Sep 2018, 08:52:32
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #8970 6 года 2 нед. назад
Согласен! Автор очень доходчиво излагает материал. Не удивлюсь, если преподает на курсах по программированию PL/SQL.
1dz аватар
1dz ответил в теме #8962 6 года 2 нед. назад
Очень толково все объяснили! Доступным языком - будет понятно начинающих программистам. Язык PL/SQL просто обязан знать каждый, кто собирается работать с базами данных Oracle на профессиональном уровне!