Основы языка PL/SQL: ключевое слово PRAGMA

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

Ключевое слово PRAGMAв PL/SQL имеет следующий синтаксис:

PRAGMA директива;

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

  •  AUTONOMOUS_TRANSACTION— приказывает исполнительному ядру PL/SQL выполнить сохранение или откат любых изменений, внесенных в базу данных в текущем блоке, без воздействия на главную или внешнюю транзакцию.
  • EXCEPTION_INIT— приказывает компилятору связать конкретный номер ошибки с идентификатором, объявленным в программе как исключение. Идентификатор должен соответствовать правилам объявления исключений.
  • RESTRICT_REFERENCES— задает для компилятора уровень чистоты программного пакета (отсутствия действий, вызывающих побочные эффекты).
  • SERIALLY_REUSABLE— сообщает исполнительному ядру PL/SQL, что данные уровни пакета не должны сохраняться между обращениями к ним.

Следующий блок демонстрирует применение директивы EXCEPTION_INITдля назначения имени встроенному исключению. Если этого не сделать, то исключение будет иметь только номер.

DECLARE
no_such_sequence EXCEPTION;
PRAGMA EXCEPTION_INIT (no_such_sequence, –2289);
BEGIN
...
EXCEPTION
WHEN no_such_sequence
THEN
q$error_manager.raise_error ('Sequence not defined');
END;

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

Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 6991 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 3107 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Тип данных RAW в PL/SQL
Тип данных RAW в PL/SQL 5731 просмотров Doctor Thu, 12 Jul 2018, 08:41:33
Символьные функции и аргументы...
Символьные функции и аргументы... 10835 просмотров Анатолий Wed, 23 May 2018, 18:54:01
Войдите чтобы комментировать

apv аватар
apv ответил в теме #8866 16 янв 2018 13:53
директива Pragma позволяет гибко работать с компилятором и писать эффективный код на pl/sql.