Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso saber se tenho trabalho não confirmado em uma transação Oracle?


Se você não tem acesso a v$session você pode usar
select dbms_transaction.local_transaction_id from dual;

Isso só funciona dentro da sessão, mas não precisa de privilégios v$. Se retornar um valor não nulo, você iniciou uma transação. Isso normalmente significa alterações não confirmadas, mas há exceções. Se você emitiu um ponto de salvamento, alterou dados e voltou para o ponto de salvamento, a transação ainda 'vive'. Além disso, usar links de banco de dados inicia transações, mesmo apenas para seleções (ou costumavam fazer).