Блок PL/SQL: СТРУКТУРА, Синтаксис, АНОНИМНЫЙ пример
Что такое блок PL/SQL?
В PL/SQL код не выполняется в однострочном формате, а всегда выполняется путем группировки кода в один элемент, называемый блоками. В этом уроке вы узнаете об этих блоках.
Блоки содержат как PL/SQL, так и инструкции SQL. Все эти инструкции будут выполняться целиком, а не по одной инструкции за раз.
Структура блока
Блоки PL/SQL имеют заранее определенную структуру, в которой должен быть сгруппирован код. Ниже приведены различные разделы блоков PL/SQL.
- Раздел декларации
- Раздел исполнения
- Раздел обработки исключений
На рисунке ниже показаны различные блоки 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.
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
Примечание: За блоком всегда должен следовать '/', который отправляет компилятору информацию об окончании блока.
Типы блоков PL/SQL
Блоки PL/SQL бывают в основном двух типов.
- Анонимные блоки
- Именованные блоки
Анонимные блоки
Анонимные блоки — это блоки PL/SQL, которым не присвоено никаких имен. Их необходимо создавать и использовать в одном сеансе, поскольку они не будут храниться на сервере как объекты базы данных.
Поскольку им не нужно хранить данные в базе данных, им не требуются этапы компиляции. Они пишутся и выполняются напрямую, а компиляция и выполнение происходят в одном процессе.
Ниже приведены еще несколько характеристик анонимных блоков.
- Для этих блоков не указано никакого ссылочного имени.
- Эти блоки начинаются с ключевого слова «DECLARE» или «BEGIN».
- Поскольку эти блоки не имеют ссылочного имени, их нельзя сохранить для дальнейшего использования. Они должны создаваться и выполняться в одном сеансе.
- Они могут вызывать другие именованные блоки, но вызов анонимного блока невозможен, поскольку на него нет ссылки.
- Он может иметь вложенный блок, который может быть именованным или анонимным. Он также может быть вложен в любые блоки.
- Эти блоки могут иметь все три раздела блока, в которых раздел выполнения является обязательным, остальные два раздела являются необязательными.
Именованные блоки
Именованные блоки имеют определенное и уникальное имя. Они хранятся как объекты базы данных на сервере. Поскольку они доступны как объекты базы данных, к ним можно обращаться или использовать, пока они присутствуют на сервере. Процесс компиляции именованных блоков происходит отдельно при их создании как объектов базы данных.
Ниже приведены еще несколько характеристик именованных блоков.
- Эти блоки можно вызывать из других блоков.
- Структура блока такая же, как у анонимного блока, за исключением того, что он никогда не начинается с ключевого слова «DECLARE». Вместо этого он будет начинаться с ключевого слова CREATE, которое указывает компилятору создать его как объект базы данных.
- Эти блоки могут быть вложены в другие блоки. Он также может содержать вложенные блоки.
- Именованные блоки в основном бывают двух типов:
- Процесс
- Функция
Мы узнаем больше об этих именованных блоках в разделах «Процедура» и «Функция» в следующем уроке.
Итого
После изучения этого руководства вы должны знать блоки PL/SQL и их типы, различные разделы блоков и их использование. Подробное описание именованных блоков PL/SQL будет рассмотрено в следующем руководстве.