Advertisement
Guest User

Untitled

a guest
Jun 20th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.76 KB | None | 0 0
  1. CREATE OR REPLACE TRIGGER trg_update_view_3
  2. INSTEAD OF UPDATE
  3. ON dept_sal
  4. FOR EACH ROW
  5. DECLARE
  6.   dno INTEGER;
  7.   diff INTEGER;
  8.   countemp INTEGER;
  9. BEGIN
  10.   IF ( NOT :NEW.DNAME = :old.DNAME ) THEN
  11.     UPDATE dept
  12.     SET DNAME = :NEW.DNAME
  13.     WHERE DNAME = :old.DNAME;
  14.   END IF;
  15.   IF ( NOT :NEW.SUMSAL = :old.SUMSAL ) THEN
  16.     SELECT deptno INTO dno
  17.     FROM dept
  18.     WHERE dname = :old.DNAME;
  19.    
  20.     DBMS_OUTPUT.put_line(dno);
  21.    
  22.     SELECT COUNT(empno) INTO countemp
  23.     FROM emp
  24.     WHERE deptno = dno;
  25.    
  26.     DBMS_OUTPUT.put_line(countemp);
  27.    
  28.     INSERT INTO deptemp VALUES(dno, countemp);
  29.    
  30.     diff := (:NEW.SUMSAL - :old.SUMSAL) / countemp;
  31.    
  32.     UPDATE emp
  33.     SET SAL = SAL + diff
  34.     WHERE deptno = dno;
  35.   END IF;
  36. END;
  37. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement