Salut à tous.

Je suis en ce moment sur un projet de gestion d'un camping avec une bdd Oracle.

Je souhaite créé des triggers pour avoir des ID en auto-increment. J'ai réussi à créer tous les triggers sauf sur une table.

Tous mes triggers sont de la même forme. Il n'y a que le nom qui change et les champs associés.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE sequence SEQ_FACTURE start with 1 increment by 1;
 
CREATE OR REPLACE TRIGGER AUTO_FACTURE
BEFORE INSERT ON TAMARIS.FACTURE FOR EACH ROW
WHEN (new.ID_FACTURE IS NULL)
DECLARE
  la_clef number ;
BEGIN
  SELECT SEQ_FACTURE.NEXTVAL 
  INTO la_clef FROM dual ;
  :new.ID_FACTURE := la_clef ;
END ;
Il me retourne une erreur de type :
Parametre IN ou OUT absent dans l'index :: 1
quand j'utilise l'assistant de création sous Enterprise Manager.

Il me retourne une erreur de type :
BEFORE INSERT ON TAMARIS.FACTURE FOR EACH ROW

ERREUR à la ligne 2 :
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-320: the declaration of the type of this expression is incomplete or malformed
quand j'utilise SQL*Plus Worksheet.

Est-ce que quelqu'un pourrait m'éclairer.

Merci d'avance.