Bonjour,

Je souhaite mettre en place l'audit d'une table grâce à l'audit Oracle (je suis en 10.2.0.4).

L'objectif est d'avoir un log pour chaque insert, update ou delete sur une colonne de type DATE qui est inférieure à la date donnée.

Voici le code que j'utilise:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
BEGIN
DBMS_FGA.add_policy(
object_schema   => 'PLOT',
object_name     => 'PART1',
policy_name     => 'AUDIT_RO_PLOT_PART1_ID',
audit_condition => 'ID < TO_DATE(''2008-01-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')',
audit_column    => 'ID',
statement_types => 'insert,update,delete'
);
END;
/
La table est toute simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
ID
---------
01-JAN-06
01-JAN-06
01-JAN-09
01-JAN-09
01-JAN-09
Seul détail, elle est partitionnée mais je ne pense pas que ça pose de problème.

Donc pour chaque insert, update ou delete sur la colonne ID lorsque la date est inférieure au 2008-01-01, j'ai un log.

Or, lorsque je fais un insert, update ou delete avec l'utilisateur plot sur la table part1, aucune entrée n'est générée par l'audit. Je suppose que je dois avoir un problème avec l'audit_condition et la date. Je n'ai pas trouvé d'exemple d'audit sur une date, seulement sur des chiffres. Cela fonctionne correctement avec les NUMBER mais je sèche sur les dates.

Auriez-vous une idée ?

Merci d'avance.