Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен БД.docx
Скачиваний:
7
Добавлен:
20.04.2019
Размер:
240.87 Кб
Скачать
  1. Процедуры, функции, пакеты.

Процедуры

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

CREATE [OR REPLACE] PROCEDURE имя_процедуры

[(аргумент IN|OUT|INOUT тип [можно присвоить значение по умолч.], …)]

IS //тело_процедуры

/* Раздел объявлений. */

BEGIN

/* Выполняемый раздел. */

EXCEPTION

/* Раздел исключительных ситуаций.

END [имя_процедуры];

/

Вызов процедуры: execute имя_процедуры;

Удаление процедуры DROP PROCEDURE имя_процедуры.

Процедура может содержать только операторы DML, управляющие конструкции и вызовы процедур и функций. В процедуре нельзя использовать операторы DDL в число которых входят CREATE, ALTER, DROP.

Хранимая процедура - приложение, объединяющее запросы и процедурную логику и хранящееся в базе данных. Позволяет содержать вместе с БД достаточно сложные программы, выполняющие большой объем работы без передачи данных по сети и взаимодействия с клиентом. При вызове процедуры ей передаются значения фактических параметров, и внутри процедуры к этим значениям обращаются с помощью формальных параметров.

Функции

Функции очень похожи на процедуры. Как функции, так и процедуры можно хранить в базе данных или описывать в блоке. Однако вызов процедуры сам по себе является оператором PL/SQL, в то время как вызов функции - это часть некоторого выражения. Синтаксис для создания хранимой функции:

Создание функции

CREATE [OR REPLACE] FUNCTION имя_функции

[(аргумент IN|OUT|INOUT тип [можно присвоить значение по умолч.], …)]

RETURN тип возвращаемого значения

IS //тело_функции

/* Раздел объявлений. */

BEGIN

/* Выполняемый раздел. */

RETURN возвр. параметр

EXCEPTION

/* Раздел исключительных ситуаций.

END [имя_функции];

/

Оператор RETURN Внутри тела функции оператор RETURN применяется для возврата управления программой и результата выполнения функции в вызывающую среду.

При выполнении оператора RETURN управление программой сразу же возвращается в вызывающую среду. В функции может быть несколько операторов RETURN, хотя выполняться будет только один из них. Завершение функции без оператора RETURN является ошибкой.

Удаление функций DROP FUNCTION имя_функции.

Пакеты

Пакет - это конструкция PL/SQL, позволяющая хранить связанные объекты в одном месте. Преимущества пакета:

-облегчает процесс разработки;

- дополнительная функциональность (глобальные переменные);

- повышает производительность системы.

Пакет состоит из двух различных частей: описания и тела, каждая из которых хранится по отдельности в словаре данных. В пакет могут входить: процедуры, функции, курсоры, типы и переменные. CREATE [OR REPLACE] PACKAGE имя_пакета

IS

*/Список всех доступных элементов пакета*/

END[имя_пакета];

/

Тело пакета (package body) - это объект словаря данных, содержащий код реализации пакета. Описание процедур и/или функций должно соответствовать спецификации.

CREATE [OR REPLACE] PACKAGE BODY имя_пакета

IS

-- код для всех элементов, объявленных в спецификации;

END [имя_пакета];

/

Вызов элементов пакета: имя_пакета.имя_элемента

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]