Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

базаORACLE SQLкод

.sql
Скачиваний:
8
Добавлен:
23.01.2014
Размер:
37.45 Кб
Скачать

CREATE TABLE DBUSERS
(
DBUSER_ID INTEGER NOT NULL,
LOGIN VARCHAR2(150 BYTE) NOT NULL,
PASSWORD VARCHAR2(150 BYTE) NOT NULL
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE POSITIONS
(
ID_POS INTEGER,
POSITIONNAME CHAR(40 BYTE)
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE USERS
(
ID_USER INTEGER,
FULLNAME CHAR(50 BYTE) NOT NULL,
ID_POS INTEGER,
PHONE CHAR(11 BYTE)
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE TURNSTILES
(
ID_TURN INTEGER,
HOUSING INTEGER,
NUMBERINHOUSING INTEGER
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE PERMIT
(
ID_PERMIT INTEGER
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE FACTDELPERMIT
(
ID_PERMIT INTEGER,
ID_USER INTEGER,
DATEOFISSUE DATE,
VALIDITY DATE,
DATEOFRETURN DATE,
ID_DELPERM INTEGER
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE TABLE HISTORY
(
ID_PASSAGE INTEGER,
ID_TURN INTEGER NOT NULL,
ID_PERMIT INTEGER NOT NULL,
DATEOFPASSAGE DATE NOT NULL,
ROUTE INTEGER NOT NULL
)
TABLESPACE SYSTEM
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;


CREATE UNIQUE INDEX FACTDELPERMIT_PK ON FACTDELPERMIT
(ID_DELPERM)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE UNIQUE INDEX HISTORY_PK ON HISTORY
(ID_PASSAGE)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE UNIQUE INDEX PERMIT_PK ON PERMIT
(ID_PERMIT)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE UNIQUE INDEX POSITIONS_PK ON POSITIONS
(ID_POS)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE UNIQUE INDEX TURNSTILES_PK ON TURNSTILES
(ID_TURN)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE UNIQUE INDEX USERS_PK ON USERS
(ID_USER)
LOGGING
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOPARALLEL;


CREATE OR REPLACE TRIGGER TR_HISTORY_BI
BEFORE INSERT
ON LAYSAN04KA.HISTORY
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN


If (fun_his_rout(:New.id_permit)=0)
then
:New.route:=1;
else :New.route:=0;
end if;

select seqhis.NEXTVAL
into :new.id_passage
from dual;

select sysdate into :new.dateofpassage
from dual;
END;
/
SHOW ERRORS;



CREATE OR REPLACE TRIGGER TR_FACTDELPERM_BI
BEFORE INSERT
ON LAYSAN04KA.FACTDELPERMIT
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
select seqfactdelperm.nextval
into :new.id_delperm
from dual;
select sysdate
into :new.DATEOFISSUE
from dual;
END;
/
SHOW ERRORS;



CREATE OR REPLACE TRIGGER trigger_history
BEFORE INSERT
ON LAYSAN04KA.HISTORY
REFERENCING NEW AS New OLD AS Old
BEGIN
insert into copyhistory select * from history;
END;
/
SHOW ERRORS;



CREATE OR REPLACE TRIGGER LOGINTRIGGER
BEFORE DELETE OR INSERT OR UPDATE
ON LAYSAN04KA.DBUSERS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- your code here
-- (Trigger template "Default" could not be loaded.)
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
END;
/
SHOW ERRORS;



CREATE OR REPLACE TRIGGER USERSTRIGGER
BEFORE INSERT
ON LAYSAN04KA.USERS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- your code here
-- (Trigger template "Default" could not be loaded.)
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
select sequsers.nextval
into :new.id_user
from dual;
END;
/
SHOW ERRORS;



CREATE OR REPLACE TRIGGER tr_bdiu_users
BEFORE DELETE OR INSERT OR UPDATE
ON LAYSAN04KA.USERS
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
END;
/
SHOW ERRORS;



ALTER TABLE POSITIONS ADD (
CONSTRAINT POSITIONS_PK
PRIMARY KEY
(ID_POS)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE USERS ADD (
CONSTRAINT USERS_PK
PRIMARY KEY
(ID_USER)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE TURNSTILES ADD (
CONSTRAINT TURNSTILES_PK
PRIMARY KEY
(ID_TURN)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE PERMIT ADD (
CONSTRAINT PERMIT_PK
PRIMARY KEY
(ID_PERMIT)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE FACTDELPERMIT ADD (
CONSTRAINT FACTDELPERMIT_PK
PRIMARY KEY
(ID_DELPERM)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE HISTORY ADD (
CONSTRAINT HISTORY_PK
PRIMARY KEY
(ID_PASSAGE)
USING INDEX
TABLESPACE SYSTEM
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
));


ALTER TABLE USERS ADD (
CONSTRAINT USERS_R01
FOREIGN KEY (ID_POS)
REFERENCES POSITIONS (ID_POS));


ALTER TABLE FACTDELPERMIT ADD (
CONSTRAINT FACTDELPERMIT_R02
FOREIGN KEY (ID_PERMIT)
REFERENCES PERMIT (ID_PERMIT));

ALTER TABLE FACTDELPERMIT ADD (
CONSTRAINT FACTDELPERMIT_R01
FOREIGN KEY (ID_USER)
REFERENCES USERS (ID_USER));


ALTER TABLE HISTORY ADD (
CONSTRAINT HISTORY_R01
FOREIGN KEY (ID_PERMIT)
REFERENCES PERMIT (ID_PERMIT));

ALTER TABLE HISTORY ADD (
CONSTRAINT HISTORY_R02
FOREIGN KEY (ID_TURN)
REFERENCES TURNSTILES (ID_TURN));



Insert into DBUSERS
(DBUSER_ID, LOGIN, PASSWORD)
Values
(1, 'Admin', 'Admin');
Insert into DBUSERS
(DBUSER_ID, LOGIN, PASSWORD)
Values
(2, 'Vachter', 'Vachter');
Insert into DBUSERS
(DBUSER_ID, LOGIN, PASSWORD)
Values
(3, 'Analitic', 'Analitic');
Insert into DBUSERS
(DBUSER_ID, LOGIN, PASSWORD)
Values
(4, 'Lolka', 'Lalka');
COMMIT;

Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(1, 1, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('09/01/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
1);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(2, 2, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
2);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(3, 12, TO_DATE('05/20/2013 13:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('05/28/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
3);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(4, 3, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('08/26/2015 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
4);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(5, 4, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
5);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(6, 5, TO_DATE('08/26/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
6);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(7, 6, TO_DATE('08/17/2013 00:00:05', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
7);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(8, 7, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
8);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(9, 8, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
9);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(10, 9, TO_DATE('08/26/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('08/26/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
10);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(11, 10, TO_DATE('08/26/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('08/26/2014 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
11);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(12, 11, TO_DATE('08/26/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), TO_DATE('08/26/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL,
12);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(13, 13, TO_DATE('05/17/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
13);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(14, 14, TO_DATE('01/27/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
14);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(15, 15, TO_DATE('01/27/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
15);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(16, 16, TO_DATE('01/27/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
16);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(17, 17, TO_DATE('01/27/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
17);
Insert into FACTDELPERMIT
(ID_PERMIT, ID_USER, DATEOFISSUE, VALIDITY, DATEOFRETURN,
ID_DELPERM)
Values
(NULL, NULL, TO_DATE('11/12/2013 22:27:38', 'MM/DD/YYYY HH24:MI:SS'), NULL, NULL,
19);
COMMIT;

Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(4, 2, 2, TO_DATE('05/27/2013 12:00:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(5, 2, 2, TO_DATE('05/27/2013 12:00:10', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(1, 1, 1, TO_DATE('05/24/2013 07:50:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(6, 1, 1, TO_DATE('05/27/2013 08:30:14', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(2, 2, 1, TO_DATE('05/24/2013 11:30:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(3, 2, 2, TO_DATE('05/27/2013 07:30:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(9, 2, 3, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(10, 2, 3, TO_DATE('05/28/2013 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(7, 14, 3, TO_DATE('07/26/2013 14:45:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(8, 14, 3, TO_DATE('07/26/2013 14:55:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(11, 7, 18, TO_DATE('06/06/2013 07:50:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(12, 8, 18, TO_DATE('06/06/2013 12:00:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(13, 7, 18, TO_DATE('06/06/2013 13:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(14, 8, 18, TO_DATE('06/06/2013 16:02:05', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(15, 9, 16, TO_DATE('06/07/2013 07:55:09', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(16, 10, 16, TO_DATE('06/07/2013 15:56:06', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(17, 4, 11, TO_DATE('10/31/2013 16:39:15', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(18, 4, 11, TO_DATE('10/31/2013 16:40:52', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(20, 3, 11, TO_DATE('11/06/2013 18:55:56', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(21, 3, 8, TO_DATE('11/07/2013 09:54:15', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(22, 3, 8, TO_DATE('11/07/2013 09:55:02', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(23, 4, 7, TO_DATE('11/07/2013 10:11:17', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(24, 1, 1, TO_DATE('11/07/2013 10:29:00', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(25, 3, 11, TO_DATE('11/07/2013 10:35:50', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(26, 13, 1, TO_DATE('11/07/2013 13:58:30', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(27, 13, 1, TO_DATE('11/07/2013 13:58:37', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(28, 6, 1, TO_DATE('11/07/2013 14:00:58', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(29, 6, 1, TO_DATE('11/07/2013 14:01:01', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(30, 6, 1, TO_DATE('11/11/2013 15:12:43', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(31, 11, 1, TO_DATE('11/13/2013 13:52:49', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(32, 11, 1, TO_DATE('11/13/2013 13:52:51', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(33, 12, 5, TO_DATE('11/13/2013 14:06:09', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(34, 12, 5, TO_DATE('11/13/2013 14:06:12', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(35, 12, 5, TO_DATE('11/13/2013 14:06:16', 'MM/DD/YYYY HH24:MI:SS'), 1);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(36, 12, 5, TO_DATE('11/13/2013 14:06:19', 'MM/DD/YYYY HH24:MI:SS'), 0);
Insert into HISTORY
(ID_PASSAGE, ID_TURN, ID_PERMIT, DATEOFPASSAGE, ROUTE)
Values
(37, 12, 5, TO_DATE('11/13/2013 14:07:16', 'MM/DD/YYYY HH24:MI:SS'), 1);
COMMIT;

Insert into PERMIT
(ID_PERMIT)
Values
(1);
Insert into PERMIT
(ID_PERMIT)
Values
(2);
Insert into PERMIT
(ID_PERMIT)
Values
(3);
Insert into PERMIT
(ID_PERMIT)
Values
(4);
Insert into PERMIT
(ID_PERMIT)
Values
(5);
Insert into PERMIT
(ID_PERMIT)
Values
(6);
Insert into PERMIT
(ID_PERMIT)
Values
(7);
Insert into PERMIT
(ID_PERMIT)
Values
(8);
Insert into PERMIT
(ID_PERMIT)
Values
(9);
Insert into PERMIT
(ID_PERMIT)
Values
(10);
Insert into PERMIT
(ID_PERMIT)
Values
(11);
Insert into PERMIT
(ID_PERMIT)
Values
(12);
Insert into PERMIT
(ID_PERMIT)
Values
(13);
Insert into PERMIT
(ID_PERMIT)
Values
(14);
Insert into PERMIT
(ID_PERMIT)
Values
(15);
Insert into PERMIT
(ID_PERMIT)
Values
(16);
Insert into PERMIT
(ID_PERMIT)
Values
(17);
Insert into PERMIT
(ID_PERMIT)
Values
(18);
Insert into PERMIT
(ID_PERMIT)
Values
(19);
Insert into PERMIT
(ID_PERMIT)
Values
(20);
Insert into PERMIT
(ID_PERMIT)
Values
(21);
Insert into PERMIT
(ID_PERMIT)
Values
(22);
Insert into PERMIT
(ID_PERMIT)
Values
(23);
Insert into PERMIT
(ID_PERMIT)
Values
(24);
Insert into PERMIT
(ID_PERMIT)
Values
(25);
Insert into PERMIT
(ID_PERMIT)
Values
(26);
Insert into PERMIT
(ID_PERMIT)
Values
(27);
Insert into PERMIT
(ID_PERMIT)
Values
(28);
COMMIT;

Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(1, 'Студент ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(2, 'Аспирант ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(3, 'Преподаватель ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(4, 'Лаборант ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(5, 'РаботникОбщеПита ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(6, 'Вахтёр ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(7, 'Продавец ');
Insert into POSITIONS
(ID_POS, POSITIONNAME)
Values
(8, 'Уборщица ');
COMMIT;

Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(1, 1, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(2, 1, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(3, 6, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(4, 6, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(5, 6, 3);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(6, 6, 4);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(7, 2, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(8, 2, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(9, 3, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(10, 3, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(11, 4, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(12, 4, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(14, 5, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(13, 5, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(15, 7, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(16, 7, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(17, 8, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(18, 8, 2);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(19, 9, 1);
Insert into TURNSTILES
(ID_TURN, HOUSING, NUMBERINHOUSING)
Values
(20, 9, 2);
COMMIT;

Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(1, 'Фатхутдинова Л.М. ', 1, '89177787254');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(2, 'Макеев Г.А. ', 3, '89177767785');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(3, 'Билалова Д.Р. ', 1, '89610467005');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(4, 'Ефименко Н.В. ', 3, '89876172724');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(5, 'Алдошина Т. ', 1, '89173545177');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(6, 'Айбулатов М. ', 1, NULL);
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(7, 'Габдиев Ф. ', 1, '89170455702');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(8, 'Картак В.М. ', 3, NULL);
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(9, 'Иванова И.И. ', 6, '89564312380');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(10, 'Петрова И.Р. ', 6, '89155556667');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(11, 'Кошкин В.И ', 2, '89273456751');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(12, 'Мышкин И.В. ', 4, '89174544777');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(13, 'Картошкина О.Е. ', 5, '89174544444');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(14, 'Ножова Р.Г. ', 7, NULL);
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(15, 'Горный Н.Б. ', 4, '89112233445');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(17, 'Минова Г.Г. ', 8, '89278901234');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(16, 'Мушникова Г.Н. ', 5, '89177777777');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(24, 'Петросян Ю.В. ', 3, '98890908098');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(25, 'Шигорин Олег ', 1, '89674565 ');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(27, 'Мария Петровна ', 5, '12345 ');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(21, 'tnhjczy ', 3, '90909090909');
Insert into USERS
(ID_USER, FULLNAME, ID_POS, PHONE)
Values
(22, 'Гургинянц ', 7, '1236549870 ');
COMMIT;

---
CREATE OR REPLACE VIEW ADMINRAZ
(PERM, FIO, POSITION, PHONE)
AS
select
permit.id_permit as Perm,
FIO,
Position,
Phone
from(
select factdelpermit.id_permit as permitid,
factdelpermit.id_user as userid,
users.fullname as FIO,
positions.positionname as Position,
users.phone as Phone
from
factdelpermit,
users,
positions

where

positions.id_pos=users.id_pos AND factdelpermit.id_user=users.id_user
),permit
where
permit.id_permit=permitid(+)
/


CREATE OR REPLACE VIEW VIEW_HISTORY
(FULLNAME, KORPUS, DATEOFPASSAGE, ROUTE)
AS
select users.fullname, turnstiles.housing as KORPUS,history.dateofpassage, history.route
from history,users, turnstiles,factdelpermit
where history.id_turn = turnstiles.id_turn
and history.id_permit = factdelpermit.id_permit
and factdelpermit.id_permit = users.id_user
/


CREATE OR REPLACE VIEW NORM_VIEW_FOR_VATCHER
(FULLNAME, MAXTIME, KORPUS)
AS
select g.fullname,g.maxtime, VIEW_HISTORY.korpus
from
(select fullname, max(dateofpassage) as maxtime
from VIEW_HISTORY
group by fullname) g, VIEW_HISTORY
where g.fullname = VIEW_HISTORY.fullname
and VIEW_HISTORY.dateofpassage=maxtime
and view_history.route = 0
/


CREATE OR REPLACE VIEW VIEW_FOR_VACHTER
(FULLNAME, MAXTIME, KORPUS)
AS
select g.fullname,g.maxtime, VIEW_HISTORY.korpus
from
(select fullname, max(dateofpassage) as maxtime
from VIEW_HISTORY
group by fullname) g, VIEW_HISTORY
where g.fullname = VIEW_HISTORY.fullname and VIEW_HISTORY.dateofpassage=maxtime
/


---
--LOGINTRIGGER
--TR_BDIU_USERS
--TR_FACTDELPERM_BI
--TR_HISTORY_BI
--TRIGGER_HISTORY
--USERSTRIGGER
--
CREATE OR REPLACE TRIGGER LOGINTRIGGER
BEFORE DELETE OR INSERT OR UPDATE
ON LAYSAN04KA.DBUSERS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- your code here
-- (Trigger template "Default" could not be loaded.)
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
END;
/



CREATE OR REPLACE TRIGGER trigger_history
BEFORE INSERT
ON LAYSAN04KA.HISTORY
REFERENCING NEW AS New OLD AS Old
BEGIN
insert into copyhistory select * from history;
END;
/



CREATE OR REPLACE TRIGGER tr_bdiu_users
BEFORE DELETE OR INSERT OR UPDATE
ON LAYSAN04KA.USERS
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
END;
/



CREATE OR REPLACE TRIGGER TR_FACTDELPERM_BI
BEFORE INSERT
ON LAYSAN04KA.FACTDELPERMIT
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
select seqfactdelperm.nextval
into :new.id_delperm
from dual;
select sysdate
into :new.DATEOFISSUE
from dual;
END;
/



CREATE OR REPLACE TRIGGER TR_HISTORY_BI
BEFORE INSERT
ON LAYSAN04KA.HISTORY
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN


If (fun_his_rout(:New.id_permit)=0)
then
:New.route:=1;
else :New.route:=0;
end if;

select seqhis.NEXTVAL
into :new.id_passage
from dual;

select sysdate into :new.dateofpassage
from dual;
END;
/



CREATE OR REPLACE TRIGGER USERSTRIGGER
BEFORE INSERT
ON LAYSAN04KA.USERS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- your code here
-- (Trigger template "Default" could not be loaded.)
if login_id.return_id != 1 then
raise_application_error(-12345,'You have no.');
end if;
select sequsers.nextval
into :new.id_user
from dual;
END;
/




---
CREATE OR REPLACE FUNCTION LAYSAN04KA.fun_his_rout (cur in history.id_permit%type)-- cur - номер текущего id_пропуска
return history.route%type
is
route_last history.route%type;
begin--create table schema1.tab1 as select * from schema2.tab1 copyHISORY
/*select copyhistory.route
into route_last
from copyhistory
where copyhistory.id_permit=cur
and
copyhistory.dateofpassage=(select max(copyhistory.dateofpassage)
from copyhistory
where copyhistory.id_permit=cur);*/
select count(*)
into route_last
from copyhistory
where
copyhistory.id_permit = cur;

if mod(route_last,2)=0 then route_last:=0;
else route_last:=1;
end if;
return(route_last);
end fun_his_rout;
/


---
CREATE OR REPLACE PROCEDURE LAYSAN04KA.line_to_factdelpermit (fio varchar2, /*vozvrat varchar2,*/ nomprop integer)
is
var_fio integer;
--var_vozvrat date;
begin
select users.id_user into var_fio
from users
where users.fullname = fio;
/*select (*/--to_date (vozvrat,'DD.MM.YYYY HH:MI:SS')--) i--nto var_vozvrat from dual;
--var_vozvrat:=to_date (vozvrat,'DD.MM.YYYY HH:MI:SS');
insert into factdelpermit (id_user,/*validity,*/ id_permit) values (var_fio, /*to_date (vozvrat,'DD.MM.YYYY'),*/ nomprop);
end;
/


CREATE OR REPLACE PROCEDURE LAYSAN04KA.line_to_history(pass integer,turn integer)
is
begin
insert into history(id_turn,id_permit) values (turn,pass);
end;
/


CREATE OR REPLACE PROCEDURE LAYSAN04KA.line_to_users (fio varchar2, dol varchar2, telefon varchar2)
is
var_pos integer;
begin
select id_pos into var_pos
from positions
where positionname = dol;
insert into users (fullname, id_pos, phone)
values (fio, var_pos, telefon);
end;
/


---
CREATE OR REPLACE PACKAGE LAYSAN04KA.login_id
IS
PROCEDURE zaloginsa (l VARCHAR2, p VARCHAR2);

FUNCTION return_id
RETURN INTEGER;
END login_id;
/*CREATE OR REPLACE PACKAGE BODY login_id
IS
usernum INTEGER;

PROCEDURE zaloginsa (l VARCHAR2, p VARCHAR2)
IS
BEGIN
SELECT dbuser_id
INTO usernum
FROM dbusers
WHERE login = l AND PASSWORD = p;
END zaloginsa;

FUNCTION return_id
RETURN INTEGER
AS
BEGIN
IF usernum IS NULL
THEN
raise_application_error (-20003, 'Login error');
ELSE
RETURN usernum;
END IF;
END;
END login_id;
/*/

/*<TOAD_FILE_CHUNK>*/
/*CREATE OR REPLACE PACKAGE BODY login_id
IS
usernum INTEGER;

PROCEDURE zaloginsa (l VARCHAR2, p VARCHAR2)
IS
BEGIN
SELECT user_id
INTO usernum
FROM users
WHERE login = l AND PASSWORD = p;
END zaloginsa;

FUNCTION return_id
RETURN INTEGER
AS
BEGIN
IF usernum IS NULL
THEN
raise_application_error (-20003, 'Login error');
ELSE
RETURN usernum;
END IF;
END;
END login_id;
/*/
/


CREATE OR REPLACE PACKAGE BODY LAYSAN04KA.login_id
IS
usernum INTEGER;

PROCEDURE zaloginsa (l VARCHAR2, p VARCHAR2)
IS
BEGIN
SELECT dbuser_id
INTO usernum
FROM dbusers
WHERE login = l AND PASSWORD = p;
END zaloginsa;

FUNCTION return_id
RETURN INTEGER
AS
BEGIN
IF usernum IS NULL
THEN
raise_application_error (-20003, 'Login error');
ELSE
RETURN usernum;
END IF;
END;
END login_id;
/*/

/*<TOAD_FILE_CHUNK>*/
/*CREATE OR REPLACE PACKAGE BODY login_id
IS
usernum INTEGER;

PROCEDURE zaloginsa (l VARCHAR2, p VARCHAR2)
IS
BEGIN
SELECT user_id
INTO usernum
FROM users
WHERE login = l AND PASSWORD = p;
END zaloginsa;

FUNCTION return_id
RETURN INTEGER
AS
BEGIN
IF usernum IS NULL
THEN
raise_application_error (-20003, 'Login error');
ELSE
RETURN usernum;
END IF;
END;
END login_id;
/*/
/



DROP SEQUENCE LAYSAN04KA.SEQFACTDELPERM;

CREATE SEQUENCE LAYSAN04KA.SEQFACTDELPERM
START WITH 20
MAXVALUE 999999999999999999999999999
MINVALUE 0
NOCYCLE
NOCACHE
NOORDER;


DROP SEQUENCE LAYSAN04KA.SEQHIS;

CREATE SEQUENCE LAYSAN04KA.SEQHIS
START WITH 38
MAXVALUE 10000
MINVALUE 16
NOCYCLE
NOCACHE
NOORDER;


DROP SEQUENCE LAYSAN04KA.SEQUSERS;

CREATE SEQUENCE LAYSAN04KA.SEQUSERS
START WITH 29
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER;


Соседние файлы в предмете Базы данных