본문 바로가기
SQLD

오라클 무한로딩(프로시저 사용할 때)

by 새싹감자 2023. 2. 21.

이것때문에,,,,,이틀을,,,헤맸다,,,,,

원인은 해당 테이블의 레코드를 다른 곳에서 잡고있어서 였는데,

 

예를 들면 SqlDeveloper와 같은 sql툴에서 업데이트(혹은 삭제)를 하고 커밋을 안한 상태에서,
애플리케이션에서 해당 값을 또 업데이트를 한다면 계속 기다리는 상태이거나,
본인 혹은 다른 자리에서 커밋을 안하고 그 레코드 값을 계속 잡고 있는 경우에 그럴 수 있습니다.

 

 

이게 무슨소리냐면,,

프로시저를 실행하기 전에 프로시저가 사용하는 테이블을 update, delete, insert해줬다면 commit을 하지 않고는 이 테이블을 사용할 수 없다는 말이다.

 

나같은 경우에는 각종 로직 처리 후에 테이블에 데이터를 insert하는 프로시저를 만들었는데, 이 프로시저를 확인해보려고 한번 실행시킬때마다 수동으로 delete처리를 해준후에 테스트를 했다.

이과정에서 delete후에 commit을 안해줬었다!!!!!!!우와,,

 

다시는 이런일이 없도록 하기 위해 적어둔다,,,다들 이런짓 하지마세요

 

커밋필수

댓글