Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СБД_Курсач_отчёт.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
171.52 Кб
Скачать

Пакет №1

Пакет №1 содержит процедуру начального заполнения таблиц данными и процедуру очистки таблиц.

Скрипт pack1.sql

CREATE OR REPLACE PACKAGE Pack1 IS

PROCEDURE fill_tables;--заполнениетаблиц

PROCEDURE clear_tables;--очисткатаблиц

END Pack1;

CREATE OR REPLACE PACKAGE BODY Pack1 is

PROCEDURE fill_tables

as

begin

EXECUTE IMMEDIATE 'CREATE SEQUENCE PubSeq INCREMENT BY 1 START WITH 1000';

EXECUTE IMMEDIATE 'CREATE SEQUENCE spSeq INCREMENT BY 1 START WITH 2000';

INSERT INTO Publisher (pname)

VALUES('Piter');

INSERT INTO Publisher (pname)

VALUES('ACT');

INSERT INTO Publisher (pname)

VALUES('EKSMO');

INSERT INTO Publisher(pname)

VALUES('Moscow');

INSERT INTO Publisher(pname)

VALUES('MangaPub');

INSERT INTO Publisher(pname)

VALUES('Sci-Fi');

INSERT INTO Publisher(pname)

VALUES('FantasyWorld');

INSERT INTO Publisher(pname)

VALUES('Aeternum');

INSERT INTO Sponsor (pnum,sname)

VALUES(1000,'GAZPROM');

INSERT INTO Sponsor (pnum,sname)

VALUES(1000,'VTB24');

INSERT INTO Sponsor (pnum,sname)

VALUES(1001,'LUKOIL');

INSERT INTO Sponsor (pnum,sname)

VALUES(1002,'KFC');

INSERT INTO Sponsor (pnum,sname)

VALUES(1002,'ROSTELECOM');

INSERT INTO Sponsor (pnum,sname)

VALUES(1003,'ALFABANK');

INSERT INTO Sponsor (pnum,sname)

VALUES(1003,'ANIDUB');

INSERT INTO Sponsor (pnum,sname)

VALUES(1003,'Cuba77');

INSERT INTO Sponsor (pnum,sname)

VALUES(1004,'Persona99');

INSERT INTO Sponsor (pnum,sname)

VALUES(1004,'ANCORD');

INSERT INTO Sponsor (pnum,sname)

VALUES(1005,'Velzepuz');

INSERT INTO Sponsor (pnum,sname)

VALUES(1006,'Panda`s Soft Inc.');

INSERT INTO Sponsor (pnum,sname)

VALUES(1006,'Microsoft');

INSERT INTO Sponsor (pnum,sname)

VALUES(1007,'Tux');

INSERT INTO Sponsor (pnum,sname)

VALUES(1007,'TrollSposnor');

commit;

DBMS_OUTPUT.put_line('Таблицы успешно заполнены');

EXCEPTION

WHEN others THEN

DBMS_OUTPUT.put_line(SQLERRM);

end fill_tables;

PROCEDURE clear_tables

as

begin

EXECUTE IMMEDIATE 'DROP SEQUENCE PubSeq';

EXECUTE IMMEDIATE 'DROP SEQUENCE spSeq';

DELETE FROM Sponsor;

DELETE FROM publisher;

commit;

DBMS_OUTPUT.put_line('Таблицы успешно очищены');

EXCEPTION

WHEN others THEN

DBMS_OUTPUT.put_line(SQLERRM);

end clear_tables;

end Pack1;

Дополнительно в процедуру заполнения таблиц добавлено создание последовательностей, которые используется в триггере для заполнения первичного ключа таблиц Издательство и Спонсор. При удалении записей из таблиц созданные последовательности удаляются.

Данные в таблице Тарифы:

Данные в таблице Компании: