web-dev-qa-db-fra.com

Comment obtenir une dernière opération DML dans Oracle 10g-11g

Je peux obtenir un certain nombre de INSERT's/UPDATE's/DELETE's de SQL%ROWCOUNT var. Il existe également un moyen d'obtenir une dernière heure DML de chaque ligne.

Mais existe-t-il un moyen d'obtenir une dernière opération DML sur une table - INSERT/UPDATE/DELETE?

3
egor7

Avec cette requête, vous verrez votre dernier événement DML en se penchant sur le dernier changement, la date la plus récente est la dernière opération

  SELECT TABLE_OWNER, 
   TABLE_NAME, 
   INSERTS,
   UPDATES,
   DELETES,
   TIMESTAMP AS `LAST_CHANGE`
FROM  ALL_TAB_MODIFICATIONS
WHERE TO_CHAR(TIMESTAMP,'DD/MM/YYYY') = TO_CHAR(sysdate,'DD/MM/YYYY') 
ORDER BY LAST_CHANGE DESC;

enter image description here

Mais la seule façon de l'utiliser consiste à séparer les événements DML dans différentes requêtes ou à ajouter trois différents last_change par événement dml. En tout cas tu me dis tes doutes

4
Bill N. Varelli

Vous pouvez activer l'audit de session utilisateur pour ce schéma qui exécute la commande. Regardez ensuite la table SYS. $ AUD pour voir quelle était cette opération avec l'horodatage. Vous pouvez également activer le contexte d'application, ce qui vous permet d'utiliser le package DBMS_APPLICATION_INFO pour suivre le DML spécifique dans des tables comme gv $ sql à l'aide des colonnes MODULE et ACTION. Je suis sûr qu'il y en a d'autres aussi.

1
Data Flux