Набор команд, который запускается на исполнение при наступлении определенного события в базе данных (например, вход в приложение, изменение строки таблицы, исполнение DDL-команды).
Oracle-версия объектно-ориентированного класса (то есть попытка его эмуляции). Объектные типы описывают как состояние, так и поведение, объединяя собственно данные (подобно реляционной таблице) с правилами (процедурами и функциями, манипулирующими с этими данными). В этом разделе мы поговорим о процедурах, функциях и пакетах. Триггеры будут описаны далее. Объектные типы не будут рассматриваться в этой главе, так как мало кто из разработчиков (и почти никто из администраторов баз данных) использует объектно-ориентированные возможности Oracle.
Процедура - это модуль, выполняющий одно или несколько действий. Вызов процедуры в PL/SQL представляет собой независимый исполняемый оператор, поэтому PL/SQL-блок может состоять только из вызова процедуры. Процедуры являются ключевыми составляющими модульного кода, которые обеспечивают группировку и возможность повторного использования программной логики.
PL/SQL-процедура имеет следующий формат:
схема
Имя схемы, которой принадлежит процедура (необязательный параметр). По умолчанию процедура принадлежит схеме текущего пользователя. Для создания процедуры в другой схеме текущему пользователю потребуются соответствующие привилегии.
имя
Имя процедуры, которое указывается сразу после ключевого слова
PROCEDURE.
параметры
Необязательный список параметров, которые могут быть определены для передачи информации как в процедуру, так и из нее обратно в вызывающую программу.
Определяет, с какими правами будет исполняться процедура: с правами ее владельца (создателя) или же с правами вызывающего пользователя. Принято говорить о двух моделях исполнения: с правами владельца и с правами вызывающего.
Объявления локальных идентификаторов для данной процедуры. Если вы ничего не объявляете, то операторы IS и BEGIN будут следовать непосредственно друг за другом.
Операторы, которые процедура исполняет при вызове. После ключевого слова BEGIN до ключевых слов END или EXCEPTION должен быть указан хотя бы один исполняемый оператор.
Необязательные обработчики исключений для процедуры. Если вы не обрабатываете явно никакие исключения, то пропустите ключевое слово EXCEPTION и завершите раздел исполнения ключевым словом END.
Для запуска процедуры apply_discount используются следующие операторы:
В версиях Oracle8i Database и старше можно включать в вызов процедуры пустые скобки, например:
Процедура вызывается как исполняемый оператор PL/SQL. Другими словами, вызов процедуры должен завершаться точкой с запятой (;) и исполняться до или после других (если они есть) операторов SQL или PL/SQL в исполняемом разделе PL/SQL-блока.
< Предыдущая | Следующая > |
---|