Advertisement
mrenon

Untitled

Dec 7th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.99 KB | None | 0 0
  1. ------------------------
  2. -- ARTICLE_COLOR_LOOKUP
  3. ------------------------
  4.  
  5. CREATE OR REPLACE TRIGGER AI_ACL
  6. AFTER INSERT ON ARTICLE_COLOR_LOOKUP
  7. FOR EACH ROW
  8. BEGIN
  9.     INSERT INTO
  10.         EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  11.     VALUES
  12.     (:NEW.ARTICLE_CODE,
  13.      :NEW.COLOR_CODE,
  14.      :NEW.ARTICLE_LABEL,
  15.      :NEW.COLOR_LABEL,
  16.      :NEW.CATEGORY,
  17.      :NEW.SALE_PRICE,
  18.      :NEW.FAMILY_NAME,
  19.      :NEW.FAMILY_CODE,
  20.      'I'
  21.     );
  22. END;
  23. /
  24.  
  25. CREATE OR REPLACE TRIGGER AU_ACL
  26. AFTER UPDATE ON ARTICLE_COLOR_LOOKUP
  27. FOR EACH ROW
  28. DECLARE
  29.     nb INTEGER;
  30.     ope_type CHAR;
  31. BEGIN
  32.  
  33.     -- Si ligne déjà existante dans la table emode_inc
  34.     SELECT
  35.         COUNT(*) INTO nb
  36.     FROM
  37.         EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  38.     WHERE
  39.         :NEW.ARTICLE_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.ARTICLE_CODE
  40.     AND
  41.         :NEW.COLOR_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.COLOR_CODE;      
  42.  
  43.        
  44.     IF(nb <> 0) THEN
  45.        
  46.         -- savoir si la ligne existe en insert alors on modifie la ligne en conservant insert
  47.         SELECT
  48.             operation_type INTO ope_type
  49.         FROM
  50.             EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  51.         WHERE
  52.             :NEW.ARTICLE_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.ARTICLE_CODE
  53.         AND
  54.             :NEW.COLOR_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.COLOR_CODE;
  55.    
  56.         IF(ope_type = 'I') THEN
  57.             UPDATE
  58.                 EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  59.             SET    
  60.                 ARTICLE_LABEL =:NEW.ARTICLE_LABEL,
  61.                 COLOR_LABEL =:NEW.COLOR_LABEL,
  62.                 CATEGORY =:NEW.CATEGORY,
  63.                 SALE_PRICE =:NEW.SALE_PRICE,
  64.                 FAMILY_NAME =:NEW.FAMILY_NAME,
  65.                 FAMILY_CODE =:NEW.FAMILY_CODE,
  66.                 OPERATION_TYPE = 'I'
  67.             WHERE
  68.                 ARTICLE_CODE = :NEW.ARTICLE_CODE
  69.             AND
  70.                 COLOR_CODE = :NEW.COLOR_CODE;      
  71.         ELSE
  72.             UPDATE
  73.                 EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  74.             SET    
  75.                 ARTICLE_LABEL =:NEW.ARTICLE_LABEL,
  76.                 COLOR_LABEL =:NEW.COLOR_LABEL,
  77.                 CATEGORY =:NEW.CATEGORY,
  78.                 SALE_PRICE =:NEW.SALE_PRICE,
  79.                 FAMILY_NAME =:NEW.FAMILY_NAME,
  80.                 FAMILY_CODE =:NEW.FAMILY_CODE,
  81.                 OPERATION_TYPE = 'U'
  82.             WHERE
  83.                 ARTICLE_CODE = :NEW.ARTICLE_CODE
  84.             AND
  85.                 COLOR_CODE = :NEW.COLOR_CODE;
  86.         END IF;
  87.        
  88.     ELSE
  89.         INSERT INTO
  90.             EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  91.         VALUES
  92.         (:NEW.ARTICLE_CODE,
  93.          :NEW.COLOR_CODE,
  94.          :NEW.ARTICLE_LABEL,
  95.          :NEW.COLOR_LABEL,
  96.          :NEW.CATEGORY,
  97.          :NEW.SALE_PRICE,
  98.          :NEW.FAMILY_NAME,
  99.          :NEW.FAMILY_CODE,
  100.          'U'
  101.         );
  102.     END IF;
  103. END;
  104. /
  105.  
  106. CREATE OR REPLACE TRIGGER AD_ACL
  107. AFTER DELETE ON ARTICLE_COLOR_LOOKUP
  108. FOR EACH ROW
  109. DECLARE
  110.     nb INTEGER;
  111.     ope_type CHAR;
  112. BEGIN
  113.  
  114.     -- Si ligne déjà existante dans la table emode_inc
  115.     SELECT
  116.         COUNT(*) INTO nb
  117.     FROM
  118.         EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  119.     WHERE
  120.         :OLD.ARTICLE_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.ARTICLE_CODE
  121.     AND
  122.         :OLD.COLOR_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.COLOR_CODE;      
  123.  
  124.  
  125.     IF(nb <> 0) THEN
  126.  
  127.         -- savoir si la ligne existe en insert alors on supprime la ligne
  128.         SELECT
  129.             operation_type INTO ope_type
  130.         FROM
  131.             EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  132.         WHERE
  133.             :OLD.ARTICLE_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.ARTICLE_CODE
  134.         AND
  135.             :OLD.COLOR_CODE = EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC.COLOR_CODE;
  136.  
  137.         IF(ope_type = 'I') THEN
  138.             DELETE FROM
  139.                 EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  140.             WHERE
  141.                 ARTICLE_CODE = :OLD.ARTICLE_CODE
  142.             AND
  143.                 COLOR_CODE = :OLD.COLOR_CODE;      
  144.         ELSE
  145.             UPDATE
  146.                 EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  147.             SET    
  148.                 ARTICLE_LABEL =:OLD.ARTICLE_LABEL,
  149.                 COLOR_LABEL =:OLD.COLOR_LABEL,
  150.                 CATEGORY =:OLD.CATEGORY,
  151.                 SALE_PRICE =:OLD.SALE_PRICE,
  152.                 FAMILY_NAME =:OLD.FAMILY_NAME,
  153.                 FAMILY_CODE =:OLD.FAMILY_CODE,
  154.                 OPERATION_TYPE = 'D'
  155.             WHERE
  156.                 ARTICLE_CODE = :OLD.ARTICLE_CODE
  157.             AND
  158.                 COLOR_CODE = :OLD.COLOR_CODE;
  159.         END IF;
  160.  
  161.     ELSE
  162.         INSERT INTO
  163.             EMODE_INC.ARTICLE_COLOR_LOOKUP_EMODEINC
  164.         VALUES
  165.         (:OLD.ARTICLE_CODE,
  166.          :OLD.COLOR_CODE,
  167.          :OLD.ARTICLE_LABEL,
  168.          :OLD.COLOR_LABEL,
  169.          :OLD.CATEGORY,
  170.          :OLD.SALE_PRICE,
  171.          :OLD.FAMILY_NAME,
  172.          :OLD.FAMILY_CODE,
  173.          'D'
  174.         );
  175.     END IF;
  176. END;
  177. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement