Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SELECT USER
  2. FROM dual;
  3. CREATE TABLE LOGI_ZMIAN_PRZYDZIALU(
  4.   KTO VARCHAR2(255),
  5.   KIEDY DATE,
  6.   PSEUDO VARCHAR2(255),
  7.   OPERACJA VARCHAR2(255)
  8. );
  9.  
  10. CREATE OR REPLACE TRIGGER CONSTR_MIN_MAX_TRIG
  11. BEFORE UPDATE OR INSERT ON KOCURY
  12. FOR EACH ROW
  13.   DECLARE
  14.     MIN_M    KOCURY.PRZYDZIAL_MYSZY%TYPE;
  15.     MAX_M    KOCURY.PRZYDZIAL_MYSZY%TYPE;
  16.     OP_TYPE  VARCHAR2(10);
  17.   BEGIN
  18.     IF INSERTING
  19.     THEN
  20.       OP_TYPE := 'INSERTING';
  21.     END IF;
  22.     IF UPDATING
  23.     THEN
  24.       OP_TYPE := 'UPDATING ';
  25.     END IF;
  26.  
  27.     SELECT
  28.       F.MIN_MYSZY,
  29.       F.MAX_MYSZY
  30.     INTO MIN_M, MAX_M
  31.     FROM FUNKCJE F
  32.     WHERE F.FUNKCJA = :OLD.FUNKCJA;
  33.     IF :NEW.PRZYDZIAL_MYSZY < MIN_M OR MAX_M < :NEW.PRZYDZIAL_MYSZY
  34.     THEN
  35.       :NEW.PRZYDZIAL_MYSZY := :OLD.PRZYDZIAL_MYSZY;
  36.       INSERT INTO LOGI_ZMIAN_PRZYDZIALU VALUES (USER, SYSDATE, :OLD.PSEUDO, OP_TYPE);
  37.     END IF;
  38.   END;
  39.  
  40. ;
  41. UPDATE KOCURY SET PRZYDZIAL_MYSZY = PRZYDZIAL_MYSZY+790 WHERE KOCURY.PSEUDO = 'LASKA';
  42. ;
  43. SELECT PRZYDZIAL_MYSZY FROM KOCURY WHERE PSEUDO='LASKA';
  44. INSERT INTO LOGI_ZMIAN_PRZYDZIALU VALUES (USER, SYSDATE, 'asdasBELA', 'INSERTING');
  45.  
  46. SELECT * FROM LOGI_ZMIAN_PRZYDZIALU;
  47. ROLLBACK ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement