TRIGGER : Nom de la colonne Modifié
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
Code:
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; |
où
:NEW = la nouvelle valeur du colonne
:OLD = l'ancienne valeur du colonne
la structure du table LMD:
Code:
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) |
j'utilise Oracle9i (9.0.1.1.1)
de l'aide svp