Теория баз данных


         

И эти понятия здесь трактуются


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

Рассмотрим несколько примеров простейших хранимых процедур.

/* процедура проверки наличия экземпляров данной книги

параметры:

@ISBN шифр книги

процедура возвращает параметр, равный количеству экземпляров

Если возвращается ноль, то это значит, что нет свободных экземпляров данной

книги в библиотеке.

*/

CREATE PROCEDURE COUNT_EX (@ISBN varchar(12)) AS

/* определим внутреннюю переменную */

DECLARE @TEK_COUNT int

/* выполним соответствующий оператор

SELECT

Будем считать только экземпляры, которые в настоящий момент находятся

не на руках у читателей, а в библиотеке */

select @TEK_COUNT = select count(*)

FROM EXEMPLAR WHERE ISBN = @ISBN

AND READERJD Is NULL AND EXIST = True

/* 0 - ноль означает, что нет ни одного свободного экземпляра данной книги в библиотеке */

RETURN @TEK_COUNT

Хранимая процедура может быть вызвана несколькими способами. Простейший способ — это использование оператора:

ЕХЕС <имя мроцедуры> <значение входного_параметра1>...

<имя_переменной_для_выходного параметра!>...

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

Например, если мне надо найти число экземпляров книги «Oracle8. Энциклопедия пользователя», которая имеет ISBN 966-7393-08-09, то текст вызова ранее созданной хранимой процедуры может быть следующим:

/* Определили две переменные

@Ntek - количество экземпляров данной книги в наличие в библиотеке

@ISBN - международный шифр книги */

declare @Ntek int

DECLARE @ISBN VARCHAR(14)

/* Присвоим значение переменной @ISBN */

Select @ISBN = '966-7393-08-09'

Содержание  Назад  Вперед