Блок PL/SQL: СТРУКТУРА, Синтаксис, АНОНИМНЫЙ пример

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

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

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

Структура блока

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

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

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

Структура блока

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

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

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

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

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

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

Раздел обработки исключений

Исключение неизбежно в программе, которое возникает во время выполнения, и для его обработки 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 будет рассмотрено в следующем руководстве.