DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Создание процедуры

Синтаксис оператора CREATE [OR REPLACE] PROCEDURE следующий:
где имя__процедуръ — это имя создаваемой процедуры, аргумент — имя пара­метра процедуры, тип— это тип соответствующего параметра, а тело_про-— блок PL/SQL, в котором содержится код процедуры. Список аргументов является необязательным; в этом случае скобки отсутствуют как в объявлении, так и в вызове процедуры.
Внимание
В Oracle8i к оператору CREATE [OR REPLACE] PROCEDURE добавлены ключевое слово NOCOPY (см. ниже раздел "Передача параметров по ссылке и по значению") и предложение AUTHID (см. главу 10).
Чтобы изменить текст процедуры, необходимо удалить и повторно со­здать ее. Во время разработки процедур эта операция выполняется доволь­но часто, поэтому ключевые слова OR REPLACE (или заменить) позволяют выполнить такую операцию за один раз. Если процедура существует, она сначала удаляется безо всякого предупреждения (для удаления процедур
используется команда DROP PROCEDURE; см. ниже). Если процедура до
этого не существовала, то она создается. Если процедура существует, а ключевые слова OR REPLACE не указаны, то оператор CREATE возвра­щает ошибку Oracle: "ORA-955: Name is already used by an existing object" (имя уже используется существующим объектом).
Как и другие операторы CREATE, создание процедуры является опе­рацией DDL, поэтому до и после создания процедуры неявно выполняют­ся операторы COMMIT. При этом можно использовать как ключевое слово IS, так и ключевое слово AS — они эквивалентны друг другу.
Тело процедуры Тело (body) процедуры — это блок PL/SQL, содержа­щий раздел объявлений, выполняемый раздел и раздел исключительных
ситуаций. Раздел объявлений располагается между ключевым словом IS
или AS и ключевым словом BEGIN; выполняемый раздел (единственный
обязательный) — между ключевыми словами BEGIN и EXCEPTION, а раз­дел исключительных ситуаций — между ключевыми словами EXCEPTION и END.

Совет
При объявлении процедуры ее имя можно при желании указать после последнего оператора END. Если после END идет идентификатор, он должен соответствовать имени процедуры.

В объявлении процедуры или функции ключевое слово DECLARE отсутствует. Вместо него используется ключевое слово IS или AS. В этом просматривается аналогия PL/SQL с языком программирования Ada.
Совет
Указание имени процедуры в конце является хорошим стилем программирования, так как выделяет оператор END, соответствующий оператору CREATE, что позволяет выявлять несоответствия в парах BEGIN-END на самых ранних этапах программирования.
 









jAntivirus