source

Oracle 트랜잭션에서 커밋되지 않은 작업이 있는지 확인하려면 어떻게 해야 합니까?

ittop 2023. 7. 21. 21:56
반응형

Oracle 트랜잭션에서 커밋되지 않은 작업이 있는지 확인하려면 어떻게 해야 합니까?

트랜잭션에 커밋되지 않은 작업(DML)이 있는지 확인할 수 있는 방법이 있습니까?데이터 사전 보기를 조회할 수 있을까요?

오픈 트랜잭션을 실행하는 세션 내외부에서 이를 확인할 수 있는 방법이 좋습니다.

감사해요.

v$session에 액세스할 수 없는 경우 사용할 수 있습니다.

select dbms_transaction.local_transaction_id from dual;

이 작업은 세션 내에서만 작동하지만 v$ 권한은 필요하지 않습니다.null이 아닌 값을 반환하는 경우 트랜잭션을 시작한 것입니다.이는 일반적으로 커밋되지 않은 변경을 의미하지만 예외가 있습니다.저장 지점을 발급하고 데이터를 변경한 후 저장 지점으로 롤백한 경우에도 트랜잭션은 여전히 '활성화'됩니다.또한 데이터베이스 연결을 사용하면 선택한 항목(또는 이전에 선택한 항목)에 대해서만 트랜잭션이 시작됩니다.

SELECT  *
FROM    v$session v
WHERE   v.AUDSID = userenv('sessionid')
    AND v.TADDR IS NOT NULL

언급URL : https://stackoverflow.com/questions/506456/how-can-i-tell-if-i-have-uncommitted-work-in-an-oracle-transaction

반응형