- •Модель клиент/сервер
- •Лексические единицы
- •Идентификаторы
- •Зарезервированные слова
- •Ограничители
- •Литералы
- •Комментарии
- •Блок pl/sql
- •Объявление переменных
- •Типы pl/sql
- •Числовые
- •Символьные
- •Семейство типов без обработки
- •Семейство типов даты.
- •Семейство типов rowid
- •Семейство логических типов
- •Семейство типов Trusted
- •Ссылочные типы.
- •Типы lob
- •Записи.
- •Использование %type, %rowtype
- •Подтипы, определяемые пользователями
- •Преобразование типов данных
- •Выражения и операции
- •Присваивание
- •Логические выражения
- •Управляющие структуры pl/sql
- •Операторы goto и метки
- •Использование sql в pl/sql
- •Связи баз данных
- •Ссылки на таблицы
- •Курсоры и курсорные переменные
- •Курсорные атрибуты
- •Циклы выборки
Комментарии
Комментарии повышают удобочитаемость программ и делают их более понятными. Компилятор PL/SQL игнорирует комментарии. Существуют комментарии двух видов: однострочные и многострочные. Однострочный комментарий начинается с двух символов тире и продолжается до конца строки (ограниченной символом возврата каретки). Многострочные комментарии начинаются с ограничителя /* и заканчиваются ограничителем */, как это делается в языке программирования С.
Блок pl/sql
Валовой единицей любой программы, написанной на PL/SQL, является блок. Из блоков состоят вес программы PL/SQL, причем блоки могут следовать одни за другим либо быть вложенными один в другой. Допустимы следующие виды блоков:
■ Анонимные блоки (anonymous blocks) создаются, как правило, динамически и выполняются только один раз.
■ Именованные блоки (named blocks) — это анонимные блоки с метками, дающими блокам имена. Они также создаются, как правило, динамически и выполняются только один раз. Чтобы дать блоку имя, нужно указать перед ключевым словом DECIARE метку, как показано в следующем примере. Можно разместить метку и после ключевого слова END.
≪l_InsertIntoTemp≫
DECLARE
/* Раздел объявлений — переменные, типы, курсоры и логические подпрограммы PL/SQL. * /
BEGIN
/* Выполняемый раздел — процедурные и SQL-операторы, Это
основной раздел блока и единственный, являющийся обязательным,
EXCEPTION
/* Раздел исключительных ситуаций - операторы обработки ошибок. */
END l_InsertIntoTemp;
■ Подпрограммы (subprograms) — это процедуры, модули и функции, хранимые в базе данных. Эти блоки, как правило, не изменяются после своего создания и выполняются многократно явным образом посредством вызова процедуры, модуля или функции.
■ Триггеры (triggers) - это именованные блоки, которые также хранятся в базе данных. Они тоже, как правило, не изменяются после своего создания и выполняются многократно неявным образом при наступлении соответствующих событий. Событием, вызывающим активизацию триггера, является оператор языка манипулирования данными (DML — data manipulation language), выполняемый над некоторой таблицей базы данных. Операторы DML — это INSERT (ввести), UPDATE (обновить) и DELETE (удалить).
Объявление переменных
Переменные (variables) — это области памяти, в которых могут храниться некоторые значения данных. Переменные описываются в разделе объявлений блока. Каждая переменная имеет конкретный тип, определяющий тин хранящейся в ней информации.
имя_переменной тип [CONSTANT] [NOT NULL] [:= значение];
где значение — начальное значение переменной. Вместо := можно воспользоваться ключевым словом DEFAULT (по умолчанию). В разделе объявлений в одной строке может быть описана только одна переменная. В качестве имени переменной может быть использован любой разрешенный идентификатор. В неинициализированной переменной содержится NULL-значение. Если в объявлении указано NOT NULL, переменная должна быть инициализирована. Более того, запрещается присваивать NULL-значение переменной, которая ограничена как NOT NULL в выполняемом разделе или в разделе исключительных ситуаций блока. Если в объявлении переменной указано CONSTANT, то она должна быть инициализирована и се начальное знамение не может быть изменено.
Область действия (scope) переменной — это фрагмент программы, в котором возможно обращение к этой переменной. Для переменной PL/SQL — это фрагмент с момента ее объявления и до конца блока. Когда переменная выходит из своей области действия. PL/SQL освобождает память, используемую для хранения данной переменной, гак как в этом случае ссылки па нее становятся невозможны.
Область видимости (visibility) переменной — это фрагмент программы, в котором возможно обращение к этой переменной без использования ее квалифицированного имени. Область видимости всегда лежит в пределах области действия; если переменная находится вне области своего действия, они невидима.
Квалификационное имя переменной – имя переменно, содержащее путь к ней в виде имя_блока1.имя_блока2.итд.имя_переменной, где имя_блокаN – имена блоков, вложенных друг в друга.