odac 설치

윈폼으로 작성된 코드가 있는데 이게 거의 10년이 되어서

오라클 db 연결을 처음보는 odac ? 를 설치해야만 연결이 되더라고요 …
혹시 odac 관련해서 찾아볼만한 정보가 있을까요? 제가 확인한건 odac를 컴퓨터에 설치하고 뭐 환경변수에 tns 이런 걸 설정해야된다라고 하는데 여기서부터 막혀서 ..

꼭 EFCore를 사용하지 않더라도 Oracle.EntityFrameworkCore 누겟패키지를 참조해 사용하면 오라클db 연동에 필요한 패키지들을 잡아주기때문에, 레거시상태에 레거시방식으로 오라클DB에 연동하는것보다 패키지 참조가 가능할정도로 기존프로젝트를 마이그레이션 한 후 작업하시는게 더 쉬운길이 될수가 있습니다.

1개의 좋아요

답변감사합니다
제가 생각한 해결법은 기존에 using.oracle.dataaccess.client 를
using.oracle.manageddataaccess.client 로 교체하여 사용하는 방법인데 이렇게 하면
1번 사진처럼 odac를 깔고 환경변수를 설정을 안해도 동작하는 것 같은데 맞나요?
기존에는 64-bit ODAC 12.2.0.1.0 이 xcopy 버전을 설치했었던 것 같은데 이렇게 하다보니 경로설정,기존의 tns name 등 설정해야되는 부분이 많아서 복잡하더라고요 ….

Oracle Home/ODAC 기반의 연결이 Oracle의 복잡한 기능과 충돌이 적은 방식인 것으로 보입니다. 다만 말씀하신대로 설정이 복잡하기도 하고, ODAC 자체가 네이티브 컴포넌트인데 화면을 보아하니 Windows Forms 프로젝트여서 Bitness 문제도 따져보셔야 할 것 같습니다.

.NET Framework 프로젝트인 경우, 32비트 선호도 옵션이 켜져있을 수 있습니다. 대개 Any CPU 빌드 타겟을 쓰실텐데, 이 경우 원칙 상 x64 머신에서는 x64 방식으로 런타임이 활성화되나, 호환성 등을 이유로 Windows Forms나 일부 프로젝트를 위해 이 규칙을 틀어 Any CPU 타겟에서도 의도적으로 x86으로 맞추어 실행할 수 있는 옵션이 제공됩니다.

만약 이 경우, ODAC이 64비트 버전으로만 설치되어있을 경우 제대로 사용하기 어려울 수 있어서, ODAC을 32비트 버전으로 추가 설치하시거나, 레거시 컴포넌트나 32비트에 의존이 꼭 필요한 상황이 아니라면, 32비트 선호도 옵션을 빌드에서 끄시는 것을 추천드립니다.

덧붙임 - 혹시 사용하시는 Windows PC 하드웨어가 Intel/AMD가 아닌 Qualcomm 프로세서 기반이라면 ODAC 사용이 특히 더 어려울 수 있습니다.

1개의 좋아요