Иван Сергеевич Задворьев

Язык PL/SQL


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

заголовка

      DECLARE

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

      BEGIN

      исполняемый раздел

      EXCEPTION

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

      END;

      В разделе заголовка указываются:

      тип блока (процедура, функция);

      имя блока (имя процедуры, функции);

      имена параметров, их типы данных и режимы передачи значений.

      В разделе объявлений объявляются пользовательские типы данных, переменные и константы, которые потом используются в исполняемом разделе и разделе обработки исключений. В исполняемом разделе реализуется собственно логика программы. В вырожденном случае там может присутствовать только одна «пустая» команда NULL. Обработка исключений рассматривается далее в отдельном параграфе.

      Ключевые слова BEGIN и END в языке PL/SQL являются операторными скобками, подобными символам { и } в других языках программирования и отмечают начало исполняемого раздела и конец блока. Каждая команда в PL/SQL должна завершаться точкой с запятой (символом ; ).

      Виды блоков PL/SQL

      В PL/SQL есть два вида блоков:

      именованные блоки (с разделом заголовка);

      анонимные блоки (без раздела заголовка).

      Именованные блоки в свою очередь тоже бывают двух видов:

      именованные блоки хранимых в базе данных программ (процедур, функций, пакетов и триггеров);

      именованные блоки в разделах объявлений других блоков (анонимных или именованных).

      Хранимые программы (stored programs) являются объектами базы данных Oracle и создаются DDL-командой CREATE, после которой записывается именованный блок PL/SQL. Имя блока, указанное в разделе заголовка, будет являться именем объекта базы данных.

      Анонимные блоки (anonymous blocks) раздела заголовка не имеют. Если блок не имеет раздела заголовка, то он не имеет и имени, которое в этом разделе указывается, поэтому такие блоки и называются анонимными.

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

      Анонимный блок-сценарий file1.sql

      Вложенные анонимные блоки

      в именованном блоке хранимой программы

      DECLARE

      i INTEGER;

      – именованный блок процедуры proc1

      – в разделе анонимного блока

      PROCEDURE proc1 IS

      BEGIN

      NULL;

      END;

      BEGIN

      – вызов процедуры proc1

      proc1;

      END;

      – именованный блок процедуры proc2

      CREATE PROCEDURE proc2 AS

      BEGIN

      – родительский анонимный блок,

      – вложенный в именованный proc2:

      DECLARE

      BEGIN

      – еще один анонимный блок

      – вложенный в родительский:

      DECLARE

      BEGIN

      NULL;

      END; – конец вложенного блока

      END; – конец родительского блока

      END;– конец именованного блока proc2

      Комментарии

      В любом месте исходного кода на