
Управл_данными / 15-view
.pdf
Недостатки
Синтаксис хранимых процедур весьма различен для разных СУБД.
Написать по-настоящему переносимый код хранимой процедуры практически невозможно.
Хранимые процедуры сложнее в написании, чем основные операторы SQL, их подготовка требует большей квалификации и опыта.
Администраторы баз данных ограничивают права на создание хранимых процедур в качестве меры безопасности.
21

Выполнение хранимых процедур
Хранимые процедуры выполняются намного чаще, чем пишутся, поэтому мы начнем именно с их выполнения.
Оператор SQL для выполнения хранимой процедуры — EXECUTE — принимает имя хранимой процедуры и некоторые параметры, необходимые для перехода к ней.
Пример:
EXECUTE AddNewProduct( 'Рыба', 6.50, '')
22

Создание хранимых процедур (версия для СУБД Oracle)
CREATE PROCEDURE MailingListCount
(ListCount OUT NUMBER)
IS
BEGIN
SELECT * FROM Client
WHERE NOT cli_email IS NULL;
ListCount := SQL%ROWCOUNT;
END;
23

Создание хранимых процедур (версия для СУБД Microsoft SQL )
CREATE PROCEDURE MailingListCount
ASDECLARE @cnt INTEGER
SELECT @cnt = COUNT(*)
FROM Client
WHERE NOT cli_email IS NULL
RETURN @cnt;
24