이것때문에,,,,,이틀을,,,헤맸다,,,,,
원인은 해당 테이블의 레코드를 다른 곳에서 잡고있어서 였는데,
예를 들면 SqlDeveloper와 같은 sql툴에서 업데이트(혹은 삭제)를 하고 커밋을 안한 상태에서,
애플리케이션에서 해당 값을 또 업데이트를 한다면 계속 기다리는 상태이거나,
본인 혹은 다른 자리에서 커밋을 안하고 그 레코드 값을 계속 잡고 있는 경우에 그럴 수 있습니다.
이게 무슨소리냐면,,
프로시저를 실행하기 전에 프로시저가 사용하는 테이블을 update, delete, insert해줬다면 commit을 하지 않고는 이 테이블을 사용할 수 없다는 말이다.
나같은 경우에는 각종 로직 처리 후에 테이블에 데이터를 insert하는 프로시저를 만들었는데, 이 프로시저를 확인해보려고 한번 실행시킬때마다 수동으로 delete처리를 해준후에 테스트를 했다.
이과정에서 delete후에 commit을 안해줬었다!!!!!!!우와,,
다시는 이런일이 없도록 하기 위해 적어둔다,,,다들 이런짓 하지마세요
'SQLD' 카테고리의 다른 글
[프로그래머스 SQL고득점 키트 JOIN]특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.02.10 |
---|---|
[프로그래머스 SQL고득점 키트 String, Date]DATETIME에서 DATE로 형 변환 (0) | 2023.02.09 |
[프로그래머스 SQL고득점 키트 String, Date]오랜 기간 보호한 동물(2) (0) | 2023.02.09 |
[프로그래머스 SQL고득점 키트 String, Date]중성화 여부 파악하기 (0) | 2023.02.09 |
[프로그래머스 SQL고득점 키트 String, Date]DATETIME에서 DATE로 형 변환 (0) | 2023.02.09 |
댓글