Если у вас нет доступа к v $ session, вы можете использовать
select dbms_transaction.local_transaction_id from dual;
Это работает только изнутри сессии, но не требует привилегий v $.
Если он возвращает ненулевое значение, вы начали транзакцию. Обычно это означает незафиксированные изменения, но есть исключения. Если вы ввели точку сохранения, изменили данные и откатились до точки сохранения, транзакция все еще «живет». Кроме того, использование ссылок на базы данных запускает транзакции, даже для выбора (или для этого).