Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Answers v.0.6.docx
Скачиваний:
6
Добавлен:
26.09.2019
Размер:
244.13 Кб
Скачать

10. Pl/sql, структура, основные операторы.

Programming Language for SQL, Procedured SQL — процедурный SQL, расширение стандартного языка SQL, предназнач. для создания более сложных бизнес-правил (ограничения, процедуры, функции и триггеры) на сервере Oracle. Их общая цель — реализация сложной бизнес-логики модульным способом (компонент за компонентом). Размещение бизнес-правил на сервере значительно повышает производительность, т. к. в большинстве случаев СУБД не интерпретирует SQL-запросы, а выполняет заранее скомпилированные хранимые процедуры.

Блок PL/SQL состоит из четырех секций:

  • Секция заголовка (header section). Содержит спецификацию, которая включает название блока, а также описание входных и выходных параметров.

  • Секция объявления (declaration). Предназначена для объявления переменных, констант, курсоров.

  • Выполняемая секция (execution, тело блока). Содержит операторы PL/SQL. Начинается со слова Begin и заканчивается словом Exception, если есть секция исключений, иначе — словом End.

  • Секция исключений (exception). Содержит обработчики исключительных ситуаций.

* Исключительная ситуация — когда дальнейшее выполнение тела блока не имеет смысла.

Обязательной является только выполняемая секция.

Простейший блок PL/SQL:

Declare string1 Varchar2(50);

Begin

string1 := 'Hello, world!';

dbms_output.put_line(string1); End;

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

Виды блоков:

  • именованные (имеют секцию заголовка),

  • анонимные (не имеют секции заголовка),

  • базовые;

  • вложенные (для объявления временных переменных и обработки исключений).

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

Операторы управления PL/SQL:

  • операторы выбора:

  • If … Then … End If;

  • If … Then … Else … End If;

  • If … Then … Elsif … End If;

  • операторы цикла:

  • Loop … End Loop;

  • While … Loop … End Loop;

  • For … Loop … End Loop;

  • Exit;

  • Exit When;

  • операторы безусловного перехода:

  • Goto;

  • Null;

В Oracle автоматически применяются следующие основные классы блокировок:

  • Блокировки данных (на уровне DML). Применяется для таблиц и используется для защиты данных (обеспечение целостности). К этому типу относятся блокировки строки или блокировка на уровне таблицы, затрагивающая все строки таблицы. Генерируются при выполнении операторов Insert, Delete, Update, Select for Update.

  • Блокировки словаря (на уровне DDL). Используется для защиты структуры объектов. Генерируется при выполнении операторов Create, Alter.

  • Внутренняя блокировка и защелка. Защищает внутреннюю структуру данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]