고정 지점 번호의 전체 자릿수 및 소수점 이하 자릿수
서로 다른 데이터베이스는 고정점 숫자 유형에 대해 서로 다른 최대 정밀도 또는 배율을 지원합니다.
소스 고정점 숫자 유형이 대상보다 큰 소수점 이하 자릿수 또는 소수점 이하 자릿수 값을 지원하고 비KEY 열에 대해 가능한 데이터 잘림이 예측되는 경우 경고 메시지가 표시되고 데이터 잘림을 방지하기 위해 대상에서 적합한 문자열 데이터 유형이 사용됩니다. 그러나 고정 지점 번호 유형의 KEY 열에 대해 데이터 잘라내기를 예측할 경우 Replicat가 해당 오류 메시지와 함께 비정상 종료됩니다. 계속하려면 AUTOSCHEMAOPTIONS TYPEMAP를 선택하거나 AUTOSCHEMAOPTIONS IGNORE_DATA_TRUNCATION를 사용해야 합니다.
다음 시나리오에서는 이러한 옵션의 사용에 대해 설명합니다.
-
사용자가 지정한 옵션(
AUTOSCHEMAOPTIONS TYPEMAP또는AUTOSCHEMAOPTIONS IGNORE_DATA_TRUNCATION)으로 데이터 잘림이 예측되면 해당 경고 메시지와 함께 데이터가 잘립니다.예:
MySQL의 최대 소수점 이하 자릿수는 65이지만 Oracle은 38입니다. 따라서
DECIMAL(65,10)가 Oracle의VARCHAR2에 매핑됩니다.소스 축척이 대상 정밀도보다 긴 경우 정밀도/배율 비율을 유지하도록 대상 축척이 자동으로 조정될 수 있습니다.
예:
AUTOSCHEMAOPTIONS IGNORE_DATA_TRUNCATION를 사용하면 MySQL의DECIMAL(65,40)가 Oracle의NUMBER(38,23)에 매핑되고 MySQL의DECIMAL(65,64)가 Oracle의NUMBER(38,37)에 매핑됩니다. -
명시적 소수점 이하 자릿수와 소수점 이하 자릿수가 없는
NUMBER유형은 다음과 같은 방식으로 처리됩니다.NUMBER유형은 Oracle 및 TimesTen에서만 지원됩니다. 미리보기 릴리스에서는 TimesTen가 지원되지 않습니다. 소스 데이터 유형이NUMBER(명시적 전체 자릿수 또는 소수점 이하 자릿수 없음)이고 대상 데이터베이스가NUMBER데이터 유형도 지원하는 경우 대상NUMBER유형이 대상에서 사용됩니다.대상 데이터베이스에서
NUMBER데이터 유형을 지원하지 않는 경우 적합한 문자열 유형(예:VARCHAR또는VARCHAR2)이 대상에서 사용됩니다.예제:
NUMBER(5,-2)는DECIMAL(7,0)에 매핑됩니다.NUMBER(1,2)는DECIMAL(2,2)에 매핑됩니다. -
소스 열에 사용된 소수점 이하 자릿수 또는 소수점 이하 자릿수가 대상에서 지원할 수 있는 자릿수보다 많고 해당 열이 키의 일부인 경우 대상에서 데이터 잘림을 방지하기 위해 대상에서 문자열 유형을 사용할 수 있으므로 대상 테이블의 고유성 속성이 손상될 수 있습니다.
AUTOSCHEMAOPTIONS매개변수로 제어할 수 있습니다.