>>윤상배 님께서 쓰시길<<
:: 개발 특성상 모듈별로 쏘쓰를 분할해서 코딩 / 컴파일 하고 있습니다.
:: 그런데, 하나의 쿼리 결과가 다른 쿼리 결과에 영향을 미치는 이상한 문제를 발견했
:: 습니다.
:: SELECT 문에서도 발생하는데,
:: 예를 들어
:: a() 함수에서 14
:: b() 함수에서 4
:: c() 함수에서 8
:: 이라고 나와야 하는데,
:: 14, 14, 8 이런식으로 다음 함수에 쿼리결과가 영향을 미친다는 겁니다.
:: 통짜로 하면 아무런 문제가 없습니다.
:: 혹은 proc 옵션에 release cursor 을 YES로 세팅하면 문제가 없습니다.
한 cursor를 open하면 transaction 시작이고
이경우 한 transaction에서 쓰는 변수는 상호간 영향을 받습니다.
굳이 분리하고 싶으시다면 query 종료후 commit을 사용해보는 것도
한 방법이 될 수 있지 않을까 생각됩니다.
:: 결론은 어떤 문제로 인하여서 cursor 캐쉬영역을 잘못 참조하는게 아닌지 하는 생각
:: 이 듭니다.
::
:: 똑같은 쏘스를 HP 상에서 (816) 컴파일 했더니, 잘 돌아가더군요 .. ..
:: 다른 유닉스 (815) 상에서도 역시 잘 돌아 갑니다 --;;
이건 linux용 oracle문제라기 보다 oralce server의 setting 차이가 아닐까 생각됩니다.
대개 linux용 oracle을 default로 설치해서 쓰지만,
다른 os인 경우에는 나름대로 tune up을 하는 것으로 알고 있습니다.
(License차이. :) )
tolkien입니다.
|