sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo saber si tengo trabajo no comprometido en una transacción de Oracle?

Si no tiene acceso a v$session, puede usar

select dbms_transaction.local_transaction_id from dual;

Esto solo funciona dentro de la sesión, pero no necesita privilegios v$. Si devuelve un valor no nulo, ha iniciado una transacción. Eso normalmente significa cambios no confirmados, pero hay excepciones. Si emitió un punto de guardado, cambió los datos y retrocedió al punto de guardado, la transacción todavía 'vive'. Además, el uso de enlaces de bases de datos inicia transacciones, incluso solo para selecciones (o solían hacerlo).