ALUES (1, -, Іванов Іван Іванович, Січень); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (2, -, Мазур Леонід Ісаакович, лютий); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (3, -, Петров Петро Антонович, лютий); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (4, -, Сергєєва Ганна Іванівна, Май); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES ( 5, -, Шіванчук Євгенія Василівна, Березень); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (6, -, Борисова Майя Петрівна, October); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (7,-, Страхова Інна Матвіївна, Листопад); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (8, -, Деулин Максим Олексійович, червень); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (9, -, Іванова Марія Петрівна, Август); into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (10, -, Стаканова Олена Олексіївна, Май);
2.3 Тригер
база дані Оracle
Нижче описано створення тригера, який виконує певну перевірку: в один робочий день може працювати тільки одна бригада в ортопедичному відділенні. Графік роботи бригад знаходиться в таблиці «Grafik». Операції може проводити в конкретний день, тільки та бригада, яка працює за графіком у цей день. Якщо в операційному списку записано дату операції і номер бригади, яка не працює в цей день, то «спливає» помилка.
Скрипт тригера:
Сreate or replace trigger AVB_OPERATING_LIST_T1 or update or delete on AVB_OPERATING_LIST each rowTRIGGER AVBinsert on AVB_OPERATING_LISTNUMBER; NUMBER; NUMBER; NUMBER; MIN (id) into MIN from AVB_OPERATING_LIST; MAX (id) into MAX from AVB_OPERATING_LIST; count (*) into X from AVB_GRAFIK where AVB_OPERATING_LIST. DATE_OPERATING=AVB_GRAFIK.DATE and AVB_OPERATING_LIST.№BRIGADI=AVB_GRAFIK.№Brigadi and AVB_OPERATING_LIST.ID_OPERATING=i; i in MIN..MAX loop (X=0 then NULLX=1 then DELETE FROM AVB_OPERATING_LIST where AVB_OPERATING_LIST.id=i; if; if; loop;
COMMIT;.
2.4 Процедура
Нижче описано створення процедури, яка перевіряє і заносить в змінну кількість операцій, запланованих на сьогоднішній день (дата сьогоднішнього дня береться з SYSDATE (системного часу)).
Скрипт процедури: PROCEDURE XXX (DATE_OPERATING date) asNUMBER; _dt DATE:=sysdate; _tx DATE; _tx:=TRUNC (v_dt, dd/mm/yy ); count (*) into X from AVB_OPERATING_LIST where AVB_OPERATING_LIST.DATE_OPERATING=v_tx; into AVB_vspomog (vspomog) values ??(X);
END;
Коментар: при створенні процедури була використана допоміжна таблиця AVB_vspomog, яка не описана в системі і не відображена на малюнку 1.
Висновок
Завдяки вивченого матеріалу була створена БД, яка має додатковий тригер і процедуру для виконання умови задачі. Був вивчений програмний продукт Oracle Application Express і був закріплений матеріал з вивченого раніше мови MySql.
Список літератури
1. «Перші кроки - PL/SQL в Oracle» [ lt; http: //firststeps/sql/oracle/gt;]
2. «Oracle Application Express» [ lt; http: //apex.oracle/i/index.htmlgt;]
3. «Форум програмістів» [ lt; http: //sqlgt;]
.Санжей Мішра «Секрети Oracle SQL». Видавництво «Символ-плюс» 2010р.
.Коннор МакДональд «Oracle PL/SQL». Видавництво «ДиаСофтЮП» 2009р.
.Скотт Урман «Програмування на мові PL/SQL. Керівництво для програмістів ». Видавництво «Лорі» 2009р.