MSSQL DB 와 DB_LINK 사용시 tds_fdw를 사용하였습니다.
그런데 지금 MSSQL DB의 한글이 깨져서인지 어떤이유인지 postgresql 에서 보이지 않습니다.ㅠㅠ
해결방법 아시는분 알려주세요.ㅠㅠ
도움이 절실합니다.
일단 freetds 패키지에서 제공하는 tsql 명령어에서 utf8 환경 한글 처리가 잘 되는지부터 풀어야합니다.
그쪽에서 문제가 없으면 fdw 쪽에서 utf8 인코딩 데이터베이스면 문제가 없을 것으로 판단됩니다.
제가 기억하기로는 이놈이 한글처리에서 잘안됐던 기억이 ... 가물가물합니다.
tds_fdw 모듈이 현재 알파 버전이어서 실무에서 쓰기는 무리입니다.
단지 DBA가 자료를 편하게 참조하기 위해서 fdw 를 사용하는 것이라면, 차라리 odbc_fdw 를 쓰는 것이 더 안전할 것 같습니다.
tsql을 이용하여 MSSQL 데이터를 가지고 오면 한글이 깨지지 않습니다.
그런데 PostgreSQL로 가지고 오면 깨지네요.ㅠㅠ
PostgreSQL Character type 은 ko_KR.UTF-8 입니다.
김상기님이 말쓰해주신데로 ODBC_fdw 테스트를 해봐야겠네요.ㅠ 그런데 잘안되네요....
ODBC_FDW 로 테스트를 진행하였습니다. odbc_fdw-0.1.0 으로 다운받아서 설치하였습니다.
postgres:/usr/pgsql-9.4/share/odbc_fdw-0.1.0> make USE_PGXS=1 install /bin/mkdir -p '/usr/pgsql-9.4/lib' /bin/mkdir -p '/usr/pgsql-9.4/share/extension' /bin/mkdir -p '/usr/pgsql-9.4/share/extension' /usr/bin/install -c -m 755 odbc_fdw.so '/usr/pgsql-9.4/lib/odbc_fdw.so' /usr/bin/install -c -m 644 odbc_fdw.control '/usr/pgsql-9.4/share/extension/' /usr/bin/install -c -m 644 odbc_fdw--1.0.sql '/usr/pgsql-9.4/share/extension/'
그리고 extention 하려고 하니
papertech=# create extension odbc_fdw; ERROR: could not load library "/usr/pgsql-9.4/lib/odbc_fdw.so": /usr/pgsql-9.4/lib/odbc_fdw.so: invalid ELF header
구글 검색 결과 bit 수가 맞지 않으면 발생하는 에러라고 하는데 저희가 설치하려는 버전이 CentOS release 6.7 64bit 입니다.
혹시 64bit 에서 사용할수 있는 odbc_fdw 가 있다면 알려주세요~
확장모듈 빌드를 잘못한 것 같네요.
make 작업 전에,
type pg_config
명령으로 make에서 사용할 pg_config가 어디 있는지 살펴보세요.
/usr/pgsql-9.4/bin/pg_config 를 사용하지 않는다면,
그걸 사용하도록 PATH를 잘 정리해주어야 할 것 같습니다.