salut,
je développe une application de traçage d'une base de donnée Oracle où je peut crée des TRIGGER a partir d'un nom d'une table existe dans la base sans connaitre d'avance la structure,
mon problème c 'est dans le cas ou je crée une TRIGGER de type ON UPDATE je doit stocké le nom des colonnes modifiés dans une autre table nommé LMD.
donc voila le problème est claire, c'est du connaître le nom du colonne modifié sans savoir la structure du table à tracé, l'ancienne valeur et la nouvelle valeur
où
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Create Trigger JOBS_table BEFORE INSERT OR DELETE OR UPDATE ON JOBS FOR EACH ROW BEGIN IF Inserting THEN INSERT INTO LMD VALUES('JOBS','INSERT','NULL',user,sysdate,'NULL','NULL') END IF; IF Deleting THEN INSERT INTO LMD VALUES('JOBS','DELETE','NULL',user,sysdate,'NULL','NULL') END IF; IF Updating THEN INSERT INTO LMD VALUES('JOBS','UPDATE','Nom_de-colone',user,sysdate,:OLD,:NEW) END IF; END;
:NEW = la nouvelle valeur du colonne
:OLD = l'ancienne valeur du colonne
la structure du table LMD:
j'utilise Oracle9i (9.0.1.1.1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Nom NULL ? Type ----------------------------------------- -------- ---------------------------- TABLE_LMD VARCHAR2(15) TYPE_LMD VARCHAR2(10) COLONE_LMD VARCHAR2(15) USER_LMD VARCHAR2(10) DATE_LMD DATE OLD_LMD VARCHAR2(10) NEW_LMD VARCHAR2(10)
de l'aide svp
Partager