SQLSTATE = IM014
지정된 DSN은 드라이버와 응용프로그램 간 아키텍처 불일치를 포함합니다.
한마디로 32 / 64 bit 에 맞는 드라이버를 사용하지 않았다는말이다.
개발중인 파빌이 32bit 이니까 운영체제가 32bit 이던 64bit 이던 32bit 설정을 사용해야 한다.
64bit 운영체제에서 DSN 설정하려고
제어판->시스템 및 보안 -> 관리도구 -> 데이터원본
실행하면 64bit DSN 설정이 나오기 때문에 32bit 파워빌더에서 백날 연결설정 해봐야
위의 에러가 나온다.
DSN 설정 실행파일 위치가 다르다
64 bit : c:\windows\system32\odbcad32.exe
32 bit : c:\windows\sysWOW64\odbcad32.exe
32 bit DSN 설정 실행파일 실행해서 설정하도록...!!
막상 설정하러 들어가서 microsoft odbc for oracle 선택하면 아래와같은 에러 뜬다.ㅡㅡ;
Oracle(tm) 클라이언트 및 네트워킹 구성 요소를 찾을 수 없습니다. 이 구성 요소는 Oracle Corporation이 제공하며 Oracle 버전 7.3 이상 클라이언트 소프트웨어 설치의 일부입니다.
이 구성 요소를 모두 설치해야 이 드라이버를 사용할 수 있습니다.
아래주소로가서 32bit 용 오라클 instant client 를 설치해라
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html
MS odbc 는 더이상 odbc for oracle 을 지원하지 않고, 최신의 odbc for oracle 을 받기위해선 오라클에서 서포팅 받으라고 되어있다.
그리하야 위주소에서 다운받은 것이다.
설치가 다 끝나고 나면 "ODBC 데이터 원본 관리자" 에서 DSN 설정할때 드라이버를
"Microsoft ODBC for Oracle" 을 선택하지 않고
"Oracle in OraDb11g_home1" 을 선택해서 진행했다.
"Microsoft ODBC for Oracle" 선택해서 진행하니 또 오류 ㅜㅜ;
위사항은 파워빌더 7 버전에서 오라클을 odbc 로 접속하기 위한 삽질과정 중에 나온 답이다.
완벽한 해답이 아닐수도 있다.
정리하자면
파워빌더 7.0 이 32bit 어플리케이션 이므로 운영체제와 상관없이 odbc 드라이버도 32bit 이어야한다.
헌데, oracle 11g 를 "Microsoft ODBC for Oracle" 이 제대로 지원하지 못하는듯 하다
그리하여 오라클에서 insatant client (32bit) 를 직접 설치한 후 DSN 설정을 하였다.
파빌이 너무 오래되고 32bit, 운영체제는 64bit 이고, 어플과 드라이버간의 아키텍쳐(32/64 bit) 설정을 잡는다고
너무나 괴로운 시간을 보냈다. ㅡㅡ;
어느 누군가에겐 희망이 되기를 ...