Здавалка
Главная | Обратная связь

Хранимые процедуры (Procedures)



Хранимая процедура – это откомпилированная во внутреннее представление сервера СУБД подпрограмма, хранящаяся в базе данных. Хранимые процедуры пишутся на специальном языке хранимых процедур и триггеров, в котором имеются операторы присваивания, ветвлений и циклов, и в которых можно использовать операторы SQL, такие как INSERT, DELETE, UPDATE и SELECT.

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

Хранимые процедуры создаются оператором CREATE PROCEDURE, в котором указываются следующие элементы:

1. имя хранимой процедуры;

2. входные и выходные параметры и их типы;

3. имена и типы данных локальных переменных, используемых процедурой;

4. последовательность инструкций, которые выполняются при вызове процедуры.

С помощью входных параметров внутрь хранимой процедуры можно передать значения, которые будут использоваться в ходе выполнения процедуры. С помощью выходных параметров хранимые процедуры возвращают значения, вычисленные в ходе выполнения процедуры.

Многие СУБД поддерживают хранимые функции, которые отличаются от хранимых процедур тем, что возвращают значение. InterBase не поддерживает хранимых функций. В InterBase для возврата значений из хранимых процедур применяются выходные параметры.

Некоторые СУБД поддерживают параметры, которые одновременно являются и входными, и выходными. InterBase не поддерживает такой возможности.

Для параметров и локальных переменных хранимых процедур используются те же типы данных, которые поддерживаются СУБД для столбцов таблиц.

Синтаксис оператора создания хранимой процедуры в InterBase:

CREATE PROCEDURE Имя_Процедуры [(Параметр <тип данных> [, Параметр <тип данных> ...])]

[RETURNS (Параметр <тип данных> [, Параметр <тип данных> ...])]

AS [<список переменных>] <блок>; <список переменных> =

DECLARE [VARIABLE] Переменная <тип данных>;

[DECLARE [VARIABLE] Переменная <тип данных>; ...]

<блок> =

BEGIN

<составной оператор>

[<составной оператор>...]

END

<составной оператор> = <блок> | Оператор;

<тип данных> = один из типов данных InterBase

Оператор – любой одиночный оператор языка хранимых процедур и триггеров InterBase.

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

Основные преимущества хранимых процедур:

1. Производительность – перенос на сервер часто используемых действий приводит к существенному повышению производительности.

2. Многократное использование кода – части приложения, перенесенные на сервер, могут использоваться любыми другими приложениями, имеющими доступ к серверу.


 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.