Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выборка PL.SQL.docx
Скачиваний:
4
Добавлен:
20.07.2019
Размер:
316.25 Кб
Скачать
  1. Комментарии

Комментарии повышают удобочитаемость программ и делают их более понятными. Компилятор PL/SQL игнорирует комментарии. Существуют комментарии двух видов: однострочные и многостроч­ные. Однострочный комментарий начинается с двух символов тире и продолжается до конца строки (огра­ниченной символом возврата каретки). Многострочные комментарии начинаются с ограничителя /* и заканчиваются ограничителем */, как это делается в языке программирования С.

  1. Блок 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 (удалить).

  1. Объявление переменных

Переменные (variables) — это области памяти, в которых могут храниться некоторые значения данных. Переменные описываются в разделе объявлений блока. Каждая переменная имеет конкретный тип, определяющий тин хранящейся в ней информации.

имя_переменной тип [CONSTANT] [NOT NULL] [:= значение];

где значение — начальное значение переменной. Вместо := можно воспользоваться ключевым словом DEFAULT (по умолчанию). В разделе объявлений в одной строке может быть описана только одна переменная. В качестве имени переменной может быть использован любой разрешенный идентификатор. В неинициализированной переменной содержится NULL-значение. Если в объявлении указано NOT NULL, переменная должна быть инициализирована. Более того, запрещается присваивать NULL-значение пе­ременной, которая ограничена как NOT NULL в выполняемом разделе или в разделе исключительных ситуаций блока. Если в объявлении переменной указано CONSTANT, то она должна быть инициализирована и се на­чальное знамение не может быть изменено.

Область действия (scope) переменной — это фрагмент программы, в котором возможно обращение к этой переменной. Для переменной PL/SQL — это фрагмент с момента ее объявления и до конца блока. Когда переменная выходит из своей области действия. PL/SQL освобождает память, используемую для хранения данной переменной, гак как в этом случае ссылки па нее становятся невозможны.

Область видимости (visibility) переменной — это фрагмент программы, в котором возможно обраще­ние к этой переменной без использования ее квалифицированного имени. Область видимости всегда ле­жит в пределах области действия; если переменная находится вне области своего действия, они невидима.

Квалификационное имя переменной – имя переменно, содержащее путь к ней в виде имя_блока1.имя_блока2.итд.имя_переменной, где имя_блокаN – имена блоков, вложенных друг в друга.