Advertisement
mrenon

Untitled

Dec 7th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.28 KB | None | 0 0
  1. CREATE OR REPLACE TRIGGER AD_AL
  2. AFTER DELETE ON ARTICLE_LOOKUP
  3. FOR EACH ROW
  4. DECLARE
  5.     nb INTEGER;
  6.     ope_type CHAR;
  7. BEGIN
  8.  
  9.     -- Si ligne déjà existante dans la table emode_inc
  10.     SELECT
  11.         COUNT(*) INTO nb
  12.     FROM
  13.         EMODE_INC.ARTICLE_LOOKUP_EMODEINC
  14.     WHERE
  15.         :OLD.ARTICLE_CODE = EMODE_INC.ARTICLE_LOOKUP_EMODEINC.ARTICLE_CODE;    
  16.  
  17.  
  18.     IF(nb <> 0) THEN
  19.  
  20.         -- savoir si la ligne existe en insert alors on supprime la ligne
  21.         SELECT
  22.             operation_type INTO ope_type
  23.         FROM
  24.             EMODE_INC.ARTICLE_LOOKUP_EMODEINC
  25.         WHERE
  26.             :OLD.ARTICLE_CODE = EMODE_INC.ARTICLE_LOOKUP_EMODEINC.ARTICLE_CODE;
  27.  
  28.         IF(ope_type = 'I') THEN
  29.             DELETE FROM
  30.                 EMODE_INC.ARTICLE_LOOKUP_EMODEINC
  31.             WHERE
  32.                 ARTICLE_CODE = :OLD.ARTICLE_CODE;      
  33.         ELSE
  34.             UPDATE
  35.                 EMODE_INC.ARTICLE_LOOKUP_EMODEINC
  36.             SET    
  37.                 ARTICLE_LABEL =:OLD.ARTICLE_LABEL,
  38.                 CATEGORY =:OLD.CATEGORY,
  39.                 SALE_PRICE =:OLD.SALE_PRICE,
  40.                 FAMILY_NAME =:OLD.FAMILY_NAME,
  41.                 FAMILY_CODE =:OLD.FAMILY_CODE,
  42.                 OPERATION_TYPE = 'D'
  43.             WHERE
  44.                 ARTICLE_CODE = :OLD.ARTICLE_CODE;
  45.         END IF;
  46.  
  47.     ELSE
  48.         INSERT INTO
  49.             EMODE_INC.ARTICLE_LOOKUP_EMODEINC
  50.         VALUES
  51.         (:OLD.ARTICLE_CODE,
  52.          :OLD.ARTICLE_LABEL,
  53.          :OLD.CATEGORY,
  54.          :OLD.SALE_PRICE,
  55.          :OLD.FAMILY_NAME,
  56.          :OLD.FAMILY_CODE,
  57.          'D'
  58.         );
  59.     END IF;
  60. END;
  61. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement