Создание для базы данных выполняемой хранимой процедуры и хранимой процедуры выбора

Страницы работы

Содержание работы

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Сибирский государственный аэрокосмический университет

имени академика М.Ф. Решетнева»

(СибГАУ)

Институт информатики и телекоммуникаций

Кафедра безопасности информационных технологий

Лабораторная работа №7

«Хранимые процедуры»

По дисциплине

«Безопасность систем баз данных»

Выполнили ст. группы КБ-51:

                                                                                        Булгаков А.Ю.

                                                                                             Бессмертный Д.О.

Проверил: преподаватель Жуков В. Г.

Красноярск 2009

Создадим для разработанной базы данных по одному экземпляру выполняемой хранимой процедуры и хранимой процедуры выбора и проверим корректность их выполнения в «Отладчике процедур».

  1. Создание выполняемой хранимой процедуры

Процедура принимает в качестве параметров номер платежа и коэффициент, вычисляет размер платежа с учетом коэффициента и заменяет им старый в таблице PAYMENT, а в таблице SALES создает новую запись, куда помещает значение коэффициента и разницу платежей:

CREATE PROCEDURE CHANGE_PAY (   SALE_ INTEGER, ID_ INTEGER)

AS

DECLARE VARIABLE DIFFERENT INTEGER;

DECLARE VARIABLE NEWPAY INTEGER;

DECLARE VARIABLE OLDPAY INTEGER;

BEGIN

SELECT SUMMA from "PAYMENT" where PAYMENT.ID = :id_ INTO oldpay ;

Newpay=oldpay-oldpay*Sale_/100;

UPDATE PAYMENT SET   SUMMA = :Newpay WHERE id=:id_;

different=oldpay-newpay;

INSERT INTO SALES (id, sale, different)

VALUES (:id_,:sale_,:different);

   suspend;

END

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

  1. Создание хранимой процедуры выбора

CREATE PROCEDURE CHOOSE (SM INTEGER)

RETURNS (KIND_ VARCHAR(50))

AS

DECLARE VARIABLE KIND_I VARCHAR(50);

DECLARE VARIABLE ID_ INTEGER;

begin

  FOR SELECT KIND_OF_PAYMENT, ID

FROM "PAYMENT"

WHERE SUMMA=:SM

INTO kind_i,id_

DO

BEGIN

SELECT KIND_OF_PAYMENT FROM "PAYMENT"

WHERE ID=:id_

INTO kind_;

     suspend;

end

end

Похожие материалы

Информация о работе