문서유형ㅣ장애해결
분야ㅣ인터페이스/연동
적용제품버전ㅣTibero 7.2.4
오류코드 ㅣTBR-11048
문서번호ㅣTIITI045
현상
Tibero to Oracle DB Link 에서 TBR-11048 오류가 발생합니다. 이에 대한 조치방안에 대해 안내합니다.
참고
Oracle 정보
- charset : WE8ISO8859P1
티베로 정보
- charset : MSWIN949
- TB_NLS_LANG 환경 변수 값 : 미지정(기본값 MSWIN949)
원인
기존 Oracle 환경에서는 ASCII / WE8DEC 같은 1byte 캐릭터셋을 사용하면서 한글을 우회적으로 저장하는 방식을 사용했기 때문에, 정상적인 캐릭터셋으로 변환(mswin949 등)할 경우 한글이 정상적으로 출력되지 않는 문제가 발생합니다. Tibero는 이러한 환경을 호환하기 위해 게이트웨이에 SKIP_CHAR_CONV 옵션을 추가하였습니다.
SKIP_CHAR_CONV
SKIP_CHAR_CONV는 Oracle 과 Tibero 사이에서만 사용가능한 파라미터로 게이트웨이 캐릭터셋이 설정되어 일어나는 변환 과정을 skip할지 여부를 정하는 파라미터입니다.
- SKIP_CHAR_CONV=N으로 설정된 경우, 게이트웨이는 Oracle 에서 가져온 데이터를 먼저 TB_NLS_LANG에 지정된 캐릭터셋으로 변환합니다. 이후 Tibero가 다시 자신의 캐릭터셋으로 재변환하기 때문에 총 두 번의 변환 과정이 발생합니다. 이 과정에서 데이터의 byte 수가 증가할 수 있으며, 그 결과 컬럼 길이를 초과하여 TBR-11048 오류가 발생할 수 있습니다.
[오라클 -> 티베로 DB LINK INSERT 수행 결과 (SKIP_CHAR_CONV=N)]
해결
SKIP_CHAR_CONV=Y일 경우, 게이트웨이는 중간 변환 없이 오라클 데이터를 그대로 Tibero에 전달합니다. Tibero는 전달받은 데이터를 자신의 캐릭터셋으로 한 번만 변환하므로 불필요한 변환이 제거되어 TBR-11048에러가 발생하지 않게 됩니다.
[오라클 -> 티베로 DB LINK INSERT 수행 결과 (SKIP_CHAR_CONV=Y)]