Учебники

3) Блоки в PL / SQL

Что такое блок PL / SQL?

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

Блоки содержат как PL / SQL, так и инструкцию SQL. Все эти инструкции будут выполняться целиком, а не по одной инструкции за раз.

В этом уроке вы узнаете:

Блочная структура

Блоки PL / SQL имеют предопределенную структуру, в которой код должен быть сгруппирован. Ниже приведены различные разделы блоков PL / SQL.

  1. Раздел декларации
  2. Раздел исполнения
  3. Раздел обработки исключений

На рисунке ниже показаны различные блоки PL / SQL и порядок их секций.

Блоки в PL / SQL

Раздел декларации

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

  • Этот конкретный раздел не является обязательным и может быть пропущен, если не требуется никаких объявлений.
  • Это должен быть первый раздел в блоке PL / SQL, если он есть.
  • Этот раздел начинается с ключевого слова «DECLARE» для триггеров и анонимного блока. Для других подпрограмм этого ключевого слова не будет. Вместо этого часть после определения имени подпрограммы отмечает раздел объявления.
  • Этот раздел должен всегда сопровождаться разделом выполнения.

Секция исполнения

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

  • Он может содержать как код PL / SQL, так и код SQL.
  • Он может содержать один или несколько блоков внутри него как вложенный блок.
  • Этот раздел начинается с ключевого слова «НАЧАЛО».
  • За этим разделом должен следовать раздел «END» или «Обработка исключений» (если имеется)

Секция обработки исключений:

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

  • В этом разделе обрабатывается исключение, возникшее в блоке выполнения.
  • Этот раздел является последней частью блока PL / SQL.
  • Элемент управления из этого раздела никогда не может вернуться в исполнительный блок.
  • Этот раздел начинается с ключевого слова «ИСКЛЮЧЕНИЕ».
  • Этот раздел должен всегда сопровождаться ключевым словом «END».

Ключевое слово «END» отмечает конец блока PL / SQL.

PL / SQL Блок Синтаксис

Ниже приведен синтаксис блочной структуры PL / SQL.

Блоки в PL / SQL

DECLARE --optional
    <declarations>

BEGIN   --mandatory
    <executable statements. At least one executable statement is mandatory>

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Примечание. За блоком всегда следует символ «/», который отправляет компилятору информацию о конце блока.

Типы блоков PL / SQL

Блоки PL / SQL имеют в основном два типа.

  1. Анонимные блоки
  2. Именованные блоки

Анонимные блоки:

Анонимные блоки — это блоки PL / SQL, которым не присвоены имена. Их необходимо создавать и использовать в одном сеансе, поскольку они не будут храниться на сервере в качестве объектов базы данных.

Поскольку они не должны храниться в базе данных, им не нужно выполнять этапы компиляции. Они пишутся и выполняются напрямую, а компиляция и выполнение происходят в одном процессе.

Ниже приведены еще несколько характеристик анонимных блоков.

  • Эти блоки не имеют никакого ссылочного имени, указанного для них.
  • Эти блоки начинаются с ключевого слова «DECLARE» или «BEGIN».
  • Так как эти блоки не имеют никакого ссылочного имени, они не могут быть сохранены для последующей цели. Они должны быть созданы и выполнены в одном сеансе.
  • Они могут вызывать другие именованные блоки, но вызов анонимного блока невозможен, так как он не имеет никакой ссылки.
  • В нем может быть вложенный блок, который может быть названным или анонимным. Он также может быть вложен в любые блоки.
  • Эти блоки могут иметь все три секции блока, в которых секция исполнения является обязательной, остальные две секции являются необязательными.

Именованные блоки:

Именованные блоки имеют определенное и уникальное имя для них. Они хранятся в виде объектов базы данных на сервере. Поскольку они доступны как объекты базы данных, на них можно ссылаться или использовать, если они присутствуют на сервере. Процесс компиляции для именованных блоков происходит отдельно при создании их как объектов базы данных.

Ниже приведены еще несколько характеристик именованных блоков.

  • Эти блоки могут быть вызваны из других блоков.
  • Структура блока такая же, как и у анонимного блока, за исключением того, что он никогда не будет начинаться с ключевого слова DECLARE. Вместо этого он начинается с ключевого слова «CREATE», которое указывает компилятору создать его как объект базы данных.
  • Эти блоки могут быть вложены в другие блоки. Он также может содержать вложенные блоки.
  • Именованные блоки в основном бывают двух типов:
  1. Процедура
  2. функция

Мы узнаем больше об этих именованных блоках в темах «Процедура» и «Функция» в следующем уроке.

Резюме

После этого урока вы должны знать о блоках PL / SQL и их типах, различных разделах блоков и их использовании. Подробное описание названных блоков PL / SQL будет описано в следующем руководстве.