Se non hai accesso a v$session puoi usare
select dbms_transaction.local_transaction_id from dual;
Funziona solo dall'interno della sessione ma non richiede i privilegi v$. Se restituisce un valore non nullo, hai avviato una transazione. Ciò normalmente significa modifiche non vincolate, ma ci sono delle eccezioni. Se hai emesso un punto di salvataggio, modificato i dati e ripristinato il punto di salvataggio, la transazione è ancora "vive". Inoltre, l'utilizzo dei collegamenti al database avvia le transazioni, anche solo per le selezioni (o lo facevano prima).