기술 정보
home
채널 소개
home

Tibero to Tibero DB Link 사용한 PSM 컴파일 중 TBR-8167 오류 발생

문서 유형
장애 해결
분야
패치/업그레이드
키워드
DBLINK
character set
적용 제품 버전
7FS01
7FS02
7FS02PS
1 more property

현상

참고
해당 현상은 Tibero7 fs02 버전에서 발생했습니다.
Tibero to Tibero DB Link를 사용한 PSM을 컴파일하려는 과정에서 TBR-8167: The computed column length is too long 오류가 발생하며 컴파일이 실패합니다. 아래는 SOURCE DB, TARGET DB 정보입니다.
[SOURCE DB] - TIBERO VERSION : TIBERO 7 - character set : MSWIN949 - _ALLOW_DIFF_CHARSET_INSTANCE=Y 사용중 [TARGET DB] - TIBERO VERSION : TIBERO 7 - character set : UTF8 - _ALLOW_DIFF_CHARSET_INSTANCE=Y 사용중
SQL
복사

원인

character set이 다른 remote DB의 테이블을 조회할 때, 사용하지 않는 VARCHAR 타입 컬럼에 대해서도 크기 보정 및 검사가 수행되어 불필요한 오류가 발생하였습니다.
DB Link의 source DB와 target DB 간 character set이 다른 경우, 크기가 큰 컬럼을 CTAS /PSM에서 사용할 때 정상적으로 동작하지 않을 수 있습니다.
이러한 이유로 remote 테이블의 모든 VARCHAR 컬럼에 대해 크기 보정이 이루어지고, 보정된 크기가 허용 범위를 초과하면 TBR-8167 오류가 발생하게 됩니다.
해당 사례에서는 문제가 된 remote 테이블에 큰 사이즈의 VARCHAR 컬럼이 존재했으나 실제로는 사용되지 않았으며, 사용 여부와 무관하게 크기 보정 및 검사가 수행되면서 오류가 발생하였습니다.

해결

character set이 다른 DB 간에 CTAS / PSM을 통해 테이블을 조회할 경우, 파라미터 설정을 통해 VARCHAR 컬럼의 크기 확인을 수행하지 않도록 기능이 개선된 패치(315355b)를 적용합니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
해당 패치 적용 후, 파라미터 _ALLOW_DIFF_CHARSET_INSTANCE를 FORCE로 설정하면 VARCHAR 컬럼의 크기 보정으로 인한 throw를 무시할 수 있어, 오류 없이 정상적으로 작업을 수행할 수 있습니다.