Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модели данных и СУБД.doc
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
1.71 Mб
Скачать

13. Основы языка pl/sql.

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

13.1. Алфавит и лексемы языка.

Алфавит языка включает следующий набор символов:

  1. английские буквы верхнего и нижнего регистров A..Z, a..z;

  2. арабские цифры 0..9;

  3. символы + - * / < > = ; : . , ' ~ ! @ # $ % ^ & _  ( ) { } [ ]

  4. символы табуляции, пробелы и символы возврата каретки.

Лексемы, группы символов алфавита, делятся на идентификаторы, литералы, разделители и комментарии.

Идентификаторы имеют длину до тридцати символов и состоят из прописных и строчных букв, цифр и знака подчеркивания, причем первой должна быть буква. Допускается, но не рекомендуется использовать специальные символы, такие как #, $. Некоторые из идентификаторов в языке PL/SQL имеет специальное синтаксическое значение. Такие идентификаторы называются зарезервированными и не должны переопределяться.

Литералы – это явно заданное число, символ, строка или логическое значение, не представленное идентификатором. Литералы делятся на числовые, строковые и логические.

Числовые литералы бывают двух типов: целые и действительные. Целые литералы – это знаковые числа без десятичной точки (6 ; -14). Действительные литералы – знаковые целые или дробные числа с десятичной точкой (6.667; -12.0). Допускается запись числовых литералов в экспоненциальной форме (1.0Е-7; 2Е5).

Строковые литералы – это последовательность символов, заключенных в одинарные кавычки (апострофы). Все строковые литералы, за исключением пустой строки ('') имеют тип CHAR. Если в строковом литерале необходимо указать одинарную кавычку, то при записи она просто удваивается.

Логические литералы – это предопределенные значения TRUE, FALSE и NULL. NULL указывает на неизвестное значение.

Разделитель – это совокупность одного или двух символов, которая имеет определенное значение в PL/SQL. Простые разделители содержат только один символ. К ним относятся, например, знаки арифметических операций ( + , – , * , / ), знаки операций отношения ( = , > , < ), признак конца выражения ( ; ). Составные разделители содержат два символа. К ним относятся, например, оператор присваивания ( := ), оператор конкатенации ( | | ), операция возведения в степень ( ** ), начало и конец метки ( << >> ), оператор диапазона ( .. ), операция отношения неравно (<>, !=, ~=, ^= ), операция отношения меньше или равно ( <= ), операция отношения больше или равно ( >= ).

Комментарии содержат пояснительный текст и делятся на однострочные и многострочные. Однострочный комментарий представляет собой строку, начинающуюся с двух символов дефис (-). В многострочном комментарии текст заключается в специальные разделители: /* */.

13.2. Структура программы.

Представляет собой набор блоков PL/SQL, рекурсивно вложенных друг в друга.

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

[<<метка>>]

[DECLARE

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

BEGIN

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

[EXEPTION

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

END[<<метка>>];

Обязательным должен быть только исполняемый раздел, содержащий операторы языка. Существуют следующие типы блоков: анонимные, именованные, триггеры и подпрограммы (процедуры, функции, пакеты). Анонимные блоки в отличие от именованных не содержат меток. Именованные и анонимные блоки называются динамическими.