이기종 DB 데이터 조회 시 오류 문의 0 1 1,918

by 콩쓰 [DB 기타] [2020.06.18 15:17:47]


MSSQL -> ORACLE 로 DBLINK 설정하고, 데이터 조회를 하고 있습니다.

SELECT "A", "B" FROM ABC@DBLINK 라고 했을 때,

해당 MSSQL ABC테이블 내 A 컬럼이 NVARCHAR(N), INT, DATETIME 전부 조회가 되는데,

NVARCHAR(MAX) 데이터 타입만 "문자열 데이터의 오른쪽이 잘렸습니다" 라고 나옵니다.

desc SELECT * FROM ABC@DBLINK 해보면 NVARCHAR(MAX)는 NVARCHAR2 로 맵핑됩니다.


구글검색을 통해 여러가지 방안을 살펴봤는데

1. MSSQL 2014 버전에서는 Bug Fix 형태로 업데이트 하면 된다고 하더군요. 현재 서버는 MSSQL 2008 R2 라서 적용이 어렵습니다.
https://support.microsoft.com/ko-kr/help/2996629/fix-string-data-right-truncation-error-when-you-do-bulk-copy-on-dbcs-b

2. NVARCHAR(MAX)는 ORACLE LONG 데이터 타입과 매칭 되는데, 캐릭터셋을 UNICODE 로 변경해야봐라 라고 되어 있어 살펴보니,
NLS_NCHAR_CHARACTERSET = AL16UTF16 이고, 기본 캐릭터셋은 KO16MSWIN949 더군요. UTF-8 이 아니라서 이상이 없어보이는데...
https://stackoverflow.com/questions/28209518/missing-nvarchar-columns-when-reading-sql-server-database-table-from-oracle

3. TO_CLOB, CONVERT 등.. 해봤지만 FAIL...

4. 이것저것 해봤으나.. 실패..
https://community.oracle.com/thread/4067109

실시간 연동이 필요한 자료인데, MSSQL에서 별도로 VIEW 로 가공한 데이터를 가져와야할지 고민이네요.

혹시 관련하여 해결하신분 계시면 고견 부탁드립니다.

by 깽스 [2021.03.12 10:42:09]

해결 되셨나요? 동일한 문제로 고민중인데...VIEW로 가공해보았으나 원래 타입을 가져가는지 오류는 동일합니다.

---------------------

자답합니다.

VIEW로 가공을 substring으로 했었네요..저는 그냥 convert로 VIEW생성하여 처리하였습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입