Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE TRIGGER TRG_LATE_RETURN
- BEFORE UPDATE
- ON DETAILRENTAL
- FOR EACH ROW
- WHEN (OLD.due_date <> NEW.due_date OR OLD.RETURN_DATE <> NEW.RETURN_DATE)
- DECLARE
- oldRetDate DETAILRENTAL.RETURN_DATE%TYPE :=old.RETURN_DATE;
- newRetDate DETAILRENTAL.RETURN_DATE%TYPE :=NEW.RETURN_DATE;
- oldDueDate DETAILRENTAL.due_date%TYPE := old.due_date;
- newDueDate DETAILRENTAL.due_date%TYPE := NEW.due_date;
- BEGIN
- IF oldDueDate <> newDueDate THEN
- DETAILRENTAL.DAYS_LATE := newRetDate - newDueDate;
- ELSE
- IF newRetDate = NULL THEN
- DETAILRENTAL.DAYS_LATE := NULL;
- ELSIF oldRetDate <= :oldDueDate THEN
- DETAILRENTAL.DAYS_LATE := 0;
- ELSIF newRetDate > :oldDueDate THEN
- DETAILRENTAL.DAYS_LATE := newRetDate - newDueDate;
- END IF;
- END IF;
- EXCEPTION
- WHEN OTHERS THEN
- DBMS_OUTPUT.PUT_LINE ('Unexpected error occured');
- END;
- /
- show errors;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement