Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET serveroutput ON;
- --1 Creati un trigger care sa SE DECLANSEZE INAINTE DE UPDATE PE COL SALARIUL DIN TAB ANGAJATI
- CREATE OR REPLACE TRIGGER TEST
- BEFORE UPDATE OF SALARIUL ON ANGAJATI
- FOR EACH ROW
- BEGIN
- DBMS_OUTPUT.PUT_LINE('OK');
- END;
- /
- UPDATE ANGAJATI SET SALARIUL=SALARIUL-10 WHERE ID_DEPARTAMENT=10;
- --2
- CREATE OR REPLACE TRIGGER TEST
- BEFORE UPDATE OF SALARIUL ON ANGAJATI
- FOR EACH ROW
- BEGIN
- DBMS_OUTPUT.PUT_LINE(:OLD.SALARIUL||' '||:NEW.SALARIUL);
- END;
- /
- --3 TRIGGER PT ANGAJATI(SALARIU) IN COMPARATIE CU FUNCTII(SAL MIN SI MAX)
- --SA SE CONSTR UN TRIGGER CARE SA SE DECLANSEZE LA COMENZILE INSERT/UPDATE PE TABELA ANGAJATI SI VA VERIFICA DACA SAL ANGAJATULUI SE INCADREAZA INTRE LIMITELE DE SALARIU AFEREBTE FCT PE CARE O DETINE. IN CAZUL IN CARE SALARIUL NU E INTRE LIMITE,SE VA INVOCA O EXCEPTIE
- CREATE OR REPLACE TRIGGER TEST1
- BEFORE UPDATE OF SALARIUL OR INSERT ON ANGAJATI
- FOR EACH ROW
- DECLARE
- SAL_MIN FUNCTII.SALARIU_MIN%TYPE;
- SAL_MAX FUNCTII.SALARIU_MAX%TYPE;
- EX EXCEPTION;
- BEGIN
- SELECT SALARIU_MIN,SALARIU_MAX INTO SAL_MIN,SAL_MAX FROM FUNCTII WHERE ID_FUNCTIE=:NEW.ID_FUNCTIE;
- IF(:NEW.SALARIUL>SAL_MAX OR :NEW.SALARIUL<SAL_MIN)
- THEN RAISE_APPLICATION_ERROR(-20001,'SAL NU SE INCADREAZA IN LIMITE');
- END IF;
- END;
- /
- --4 SA SE CONSTR UN TRIGGER CARE SA SE DECLANSEZE IN MOM IN CARE SE INCEARCA MARIREA SALARIULUI UNUI ANGAJAT CU VECHIMNE MAI MARE DE 20 DE ANI
- CREATE OR REPLACE TRIGGER TEST2
- BEFORE UPDATE OF SALARIUL ON ANGAJATI
- FOR EACH ROW
- WHEN(NEW.SALARIUL>OLD.SALARIUL)
- DECLARE
- EX EXCEPTION;
- VECHIME NUMBER;
- BEGIN
- VECHIME:=ROUND((SYSDATE-:OLD.DATA_ANGAJARE)/365);
- IF(VECHIME >20) THEN RAISE_APPLICATION_ERROR(-20002,'VECHIME MAI MARE DE 20');
- END IF;
- END;
- /
- UPDATE ANGAJATI SET SALARIUL=SALARIUL+30 WHERE ID_DEPARTAMENT=70;
- UPDATE ANGAJATI SET SALARIUL=SALARIUL-5 WHERE ID_DEPARTAMENT=90;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement