Синтаксис оператора 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 на самых ранних этапах программирования.
< Предыдущая | Следующая > |
---|