CREATE A, B, C FROM TABLE_A AS SELECT A, B, C FROM TABLE_BB@DBLINK WHERE D= '어쩌구저쩌구' ;
를 통해 테이블을 복사하고 있습니다.
그런데 문제는
문자열 컬럼들의 크기가 두배로 뻥튀기가 되어 생성된다는 것입니다.
예를 들면
CHAR (1) → CHAR(2)
VARCHAR2 (15) → VARCHAR2(30)
이렇게 변경이 되어버립니다.
어떤 것을 확인해 봐야 할까요?
로컬 디비와 리모트 디비에서 아래의 쿼리를 사용하여 각각 어떤 문자 세트를 쓰는지 알아보세요.
SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
예를들면, 로컬 디비는 multi-byte character set 을 쓰고, 리모트 디비는 single-byte character set 을 쓰는 지 알아 보세요.
dblink 상에서 (10g > 11g) ctas 작업 시 *2 가 발생합니다.