Salut tout le monde, j’ai un gros problème et c’est très urgent. En fait je n’arrive pas à compiler un trigger (qui pourtant marchait bien sur la 8i) sous oracle 10g. Voici l’erreur qui est générée : « Paramètre IN ou OUT absent dans l’index ::1 ». Il semble bien que ce soit le :NEW qui pose problème car après avoir mis en commentaire toutes les lignes dans lesquelles il apparaît, il n’y a plus d’erreur de compilation. Quelqu’un peut-il m’aider SVP ?
Voici le script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE OR REPLACE TRIGGER IIA_CTL_DAT_EPA
AFTER INSERT ON EPA
FOR EACH ROW
 
DECLARE
  CURSOR CSR_DAT IS
  SELECT CMT, COD_FAM FROM FOU WHERE (COD_FOU = :NEW.COD_FOU);
 
  v_CMT FOU.CMT%TYPE;
  v_CMT_DAT DATE;
  v_COD_FAM FOU.COD_FAM%TYPE;
 
BEGIN
  IF INSERTING THEN
    IF :NEW.TYP_PIE = 'CF' THEN
      OPEN CSR_DAT;
      FETCH CSR_DAT INTO v_CMT, v_COD_FAM;
      CLOSE CSR_DAT;
      IF v_COD_FAM IN ('LO', 'VR') THEN    
        v_CMT_DAT := TO_DATE(v_CMT, 'DD/MM/YYYY'); 
        IF (v_CMT_DAT < SYSDATE) THEN
          RAISE_APPLICATION_ERROR(-20800, 'La date de validité a expiré.');
        END IF;
      END IF;
    END IF;
  END IF;
 
END;
Merci d'avance.