it-swarm.com.de

So erhalten Sie eine letzte DML-Operation in Oracle 10g-11g

Ich kann eine Anzahl der letzten INSERT's/UPDATE's/DELETE's Von SQL%ROWCOUNT Var erhalten. Es gibt auch eine Möglichkeit, eine letzte DML-Zeit für jede Zeile abzurufen.

Aber gibt es eine Möglichkeit, eine letzte DML-Operation für eine Tabelle auszuführen - INSERT/UPDATE/DELETE?

3
egor7

Mit dieser Abfrage sehen Sie Ihr letztes DML-Ereignis, indem Sie bei der letzten Änderung nachsehen. Das letzte Datum ist die letzte Operation

  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

Die einzige Möglichkeit, dies zu verwenden, besteht darin, die DML-Ereignisse in verschiedenen Abfragen zu trennen oder drei verschiedene last_change pro dml-Ereignis hinzuzufügen. Auf jeden Fall sagst du mir deine Zweifel

4
Bill N. Varelli

Sie können die Überwachung von Benutzersitzungen für das Schema aktivieren, in dem der Befehl ausgeführt wird. Schauen Sie sich dann die Tabelle SYS. $ AUD an, um zu sehen, was diese Operation mit dem Zeitstempel war. Sie können auch den Anwendungskontext aktivieren, mit dem Sie das Paket DBMS_APPLICATION_INFO verwenden können, um die spezifische DML in Tabellen wie gv $ sql mithilfe der Spalten MODULE und ACTION zu verfolgen. Ich bin mir sicher, dass es auch andere gab.

1
Data Flux