으~ 오라클 - Call Stored Procedure from Java Code 하는중에 생긴 중대한 호환성 오류

less than 1 minute read

제목은 영어지만 내용은 한국어로

http://viralpatel.net/blogs/java-passing-array-to-oracle-stored-procedure

좋은 샘플 발견해고 코드 수정해서 돌려봤는데…

아무리 해도 응답값이 ARRAY.lengh() == 빵트루

뭐가 잘못된건가 싶어서 할 수 있는 모든코드에 디버깅을 돌려봤지만…

오라클은 디버깅이 안되지…

 

이런경우가 오랜만이라 쓸데없이 디버깅 하느라 반나절을 날려먹었다.

Solution : http://stackoverflow.com/questions/14998299/oracle-array-filled-with-null-data-in-java

 

이걸 항상 명심해야하는데말이지

알 수도 없고 디버깅 해도 안되는 오류는… 블랙박스 라이브러리의 버전 문제다. 이 프로젝트에는 오라클 ojdbc14.jar을 쓰고 있었는데 ojdbc6.jar + orai18n 이걸로 교체 해 주니 해결됐다. 코드에는 문제가 없었던걸로…

자바 개발을 하다보면 오픈소스만 쓰다보니 모든걸 직접 디버깅하고 오류를 발견할 수 있으리라는 착각에 빠지게 된다. 라이브러리도 정 맘에안드는 부분은 소스 수정하고 jar 패키징 다시해서 쓰기도 하고 하니까… github forking 해서 쓰기도 하고

오라클이나 SAP 등등 상용툴과 마주하게 되면 다른 개발습관이 필요한데