혁신을 이룹니다, 오딘박스(OdinBOX)

언제나 어디서나 오딘박스와 함께!

오라클 클라이언트 (32비트/64비트) 설치와 관련한 문제 해결방법

간지뽕빨리턴님 2023. 1. 8. 20:28
반응형

오라클, 데이터베이스, 시스템오류, 32비트, 64비트, ODAC, 설치

실행에 문제가 있습니다.

개발하다 갑자기 오류가 생겼습니다. 이런저런 오류를 많이 겪고 해결을 하고 있지만 이런 오류는 또 오랜만에 겪었습니다 혹시나 또 이런 오류를 겪었을 때 찾아볼 수 있고 저와 같이 이런 오류를 겪는 분들에게 조금이나 도움이 될 수 있었으면 하는 생각으로 해결방법을 적으려고 합니다.

목차

    오라클 오류

    증상

    System.InvalidOperationException: Oracle 클라이언트 라이브러리를 로드하려는 시도에서 BadImageFormatException을 Throw했습니다. 32비트 Oracle 클라이언트 구성 요소가 설치된 상태에서 64비트 모드로 실행할 경우 이러한 문제가 발생합니다.

    위치 : System.Data.Common.UnsafeNativeMethods.OCILobCopy2(IntPtr svchp, IntPtr errhp, IntPtr dst_locp, IntPrt src_locp, UInt64 amount, UInt64 dst_offset, UInt64 src_offset)

    위치 : System.Data.OracleClient.OCI.DeterminClientVersion()

    --- 내부 예외 스택 추적의 끝 ---

    해결방법

    처음 인터넷으로 비슷한 증상을 해결한 방법들을 봤는데 전부 제대로 되질않았습니다. Visual Studio에서 빌드하는 방식을 x64로 변경을 해보기도 했고 x86으로도 해보고 정말 있는 대로 싹 다 해봤지만 전혀 되질 않았습니다. 그리고 검색을 하다 알게 된 ODAC(Oracle Data Access Components) [#]이라는 것을 알게 되었는데 혹시나 하는 마음으로 설치를 하고 해봤는데 역시 되질 않았습니다.  혹시나 ODAC은 설치된 오라클 버전에 따라 달라질 수 있다고 하니 11.2 버전 이상인 분들은 설치를 해보고 시도할 것을 추천해 드립니다. 물론 저의 경우 회사에서 사용하는 오라클 버전에 따라 되질 않았습니다. 그리고 더 검색을 하다 보니 외국 개발 커뮤니티에서 이런 증상에 대한 글을 보니 결국 제일 현명한 해결방법은 64비트를 설치를 해야 한다는 것이었습니다. 기존 32비트로 설치가 되어있는데 64비트를 설치하면 충돌이 나는 것이 아닐까라는 생각에 혹시나 백업을 해두고 설치를 했는데 32비트와 64비트가 동시에 설치가 되고 64비트가 인식이 되었습니다. 참고로 인터넷에 검색을 하면 32비트와 64비트 동시 사용을 해서 레지스트리와 이것저것 수정을 해야 64비트가 인식을 한다는데 전혀 그럴 필요가 없었습니다.

     

    그래서 결론 64비트 설치를 하면 말끔히 해결될 문제다.

    마무리

    글을 적고 보면 정말 간단하게 해결을 한 것이지만 이 문제를 해결하기 위해 여기저기 검색을 하며 문제가 제대로 해결이 되질않아 답답했는데 결국 깔끔하게 해결하는 방법은 64비트를 설치를 하면 된다는 것이었습니다. 그래서 혹시나 저와 같은 문제로 시간을 소모하는 일이 없도록 해결방법을 적어봤습니다. 혹시나 궁금한 사항이 있다면 댓글을 남겨주시면 답변드리도록 하겠습니다!