Пакет №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;
Дополнительно в процедуру заполнения таблиц добавлено создание последовательностей, которые используется в триггере для заполнения первичного ключа таблиц Издательство и Спонсор. При удалении записей из таблиц созданные последовательности удаляются.
Данные в таблице Тарифы:
Данные в таблице Компании:
