Jeśli nie masz dostępu do v$session, możesz użyć
select dbms_transaction.local_transaction_id from dual;
Działa to tylko z poziomu sesji, ale nie wymaga uprawnień v$. Jeśli zwróci wartość inną niż null, transakcja została rozpoczęta. Zwykle oznacza to niezatwierdzone zmiany, ale są wyjątki. Jeśli utworzyłeś punkt zapisu, zmieniłeś dane i wycofałeś się do punktu zapisu, transakcja nadal „żyje”. Ponadto użycie łączy do bazy danych uruchamia transakcje, nawet tylko dla wybranych (lub kiedyś).