SSISO Community

시소당

PL/SQL 트리거 TRIGGER 2

----*****BEFORE STATEMENT TRIGGER *****----------------

 

CREATE OR REPLACE TRIGGER BSTRI_TBL_BOOKRENT_INSERT

BEFORE INSERT

ON TBL_BOOKRENT

DECLARE

RENTIMPOSSIBLE_DAY EXCEPTION;

RENTIMPOSSIBLE_HOUR EXCEPTION;

BEGIN

IF TO_CHAR(SYSDATE, 'D') = '2'

THEN RAISE RENTIMPOSSIBLE_DAY;

ELSIF

TO_NUMBER( TO_CHAR(SYSDATE, 'HH24') ) < 9 OR

TO_NUMBER( TO_CHAR(SYSDATE, 'HH24') ) > 17

THEN RAISE RENTIMPOSSIBLE_HOUR;

END IF;

 

EXCEPTION

WHEN RENTIMPOSSIBLE_DAY THEN

RAISE_APPLICATION_ERROR(-20001, '월요일은 휴관입니다.');

WHEN RENTIMPOSSIBLE_HOUR THEN

RAISE_APPLICATION_ERROR(-20002, '대여가능시간은 09:00 부터 18:00 이전까지입니다.');

END;

 

DROP TRIGGER BTRI_TBL_BOOKRENT_INSERT;

 

DESC TBL_BOOKRENT;

 

SELECT *

FROM TBL_BOOKRENT;

 

INSERT INTO TBL_BOOKRENT(BOOKNO, MEMBERID)

VALUES('01HM0000101', 'KH001');

2258 view

4.0 stars