Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich feststellen, ob ich nicht festgeschriebene Arbeit in einer Oracle-Transaktion habe?

Wenn Sie keinen Zugriff auf v$session haben, können Sie

verwenden
select dbms_transaction.local_transaction_id from dual;

Dies funktioniert nur innerhalb der Sitzung, benötigt aber keine v$-Berechtigungen. Wenn es eine Nicht-Null zurückgibt, haben Sie eine Transaktion gestartet. Das bedeutet normalerweise nicht festgeschriebene Änderungen, aber es gibt Ausnahmen. Wenn Sie einen Sicherungspunkt ausgegeben, Daten geändert und zum Sicherungspunkt zurückgesetzt haben, „lebt“ die Transaktion noch. Außerdem startet die Verwendung von Datenbank-Links Transaktionen, sogar nur für Selects (oder sie taten es früher).