Oracle 게시자에 대한 데이터 형식 매핑

적용 대상:SQL Server

Oracle 데이터 형식 및 Microsoft SQL Server 데이터 형식이 항상 정확히 일치하지는 않습니다. Oracle 테이블을 게시할 때 가능한 일치하는 데이터 형식이 자동으로 선택됩니다. 단일 데이터 형식 매핑이 명확하지 않으면 대체 데이터 형식 매핑이 제공됩니다. 대체 매핑을 선택하는 방법에 대한 자세한 내용은 이 항목의 뒷부분에 있는 "대체 데이터 형식 매핑 지정" 섹션을 참조하세요.

다음 표에서는 데이터가 Oracle 게시자에서 SQL Server 배포자로 이동될 때 Oracle과 SQL Server 간에 기본적으로 데이터 형식을 매핑하는 방법을 보여 있습니다. 대체 형식 열은 대체 매핑을 사용할 수 있는지 여부를 나타냅니다.

Oracle 데이터 형식 SQL Server 데이터 형식 대안
BFILE VARBINARY(MAX)
BLOB VARBINARY(MAX)
CHAR([1-2000]) CHAR([1-2000])
Clob VARCHAR(MAX)
DATE DATETIME
FLOAT FLOAT 아니요
FLOAT([1-53]) FLOAT([1-53]) 아니요
FLOAT([54-126]) FLOAT 아니요
INT NUMERIC(38)
INTERVAL DATETIME
LONG VARCHAR(MAX)
LONG RAW IMAGE
NCHAR([1-1000]) NCHAR([1-1000]) 아니요
NCLOB NVARCHAR(MAX)
NUMBER FLOAT
NUMBER([1-38]) NUMERIC([1-38]) 아니요
NUMBER([0-38],[1-38]) NUMERIC([0-38],[1-38])
NVARCHAR2([1-2000]) NVARCHAR([1-2000]) 아니요
RAW([1-2000]) VARBINARY([1-2000]) 아니요
REAL FLOAT 아니요
ROWID CHAR(18) 아니요
timestamp DATETIME
TIMESTAMP(0-7) DATETIME
TIMESTAMP(8-9) DATETIME
타임스탬프(0-7) 표준 시간대 VARCHAR(37)
타임스탬프(8-9) 표준 시간대 VARCHAR(37) 아니요
현지 표준 시간대의 타임스탬프(0-7) VARCHAR(37)
현지 표준 시간대가 있는 타임스탬프(8-9) VARCHAR(37) 아니요
UROWID CHAR(18) 아니요
VARCHAR2([1-4000]) VARCHAR([1-4000])

데이터 형식 매핑에 대한 고려 사항

Oracle 데이터베이스에서 데이터를 복제할 때는 다음 데이터 형식 문제를 고려하십시오.

지원되지 않는 데이터 형식

다음 데이터 형식은 지원되지 않습니다. 이러한 형식이 있는 열은 복제본(replica) 지정할 수 없습니다.

  • 개체 유형

  • XML 형식

  • Varrays

  • 중첩 테이블

  • REF를 사용하는 열

DATE 데이터 형식

SQL Server의 날짜는 오전 1753에서 오전 9999까지의 범위인 반면 Oracle의 날짜 범위는 BC 주 4712에서 4712까지입니다. DATE 형식의 열에 SQL Server의 범위를 벗어난 값이 포함된 경우 열의 대체 데이터 형식(VARCHAR(19))을 선택합니다.

FLOAT 및 NUMBER 형식

FLOAT 및 NUMBER 데이터 형식을 매핑하는 동안 지정된 소수 자릿수 및 정밀도는 Oracle 데이터베이스의 데이터 형식을 사용하여 열에 지정된 소수 자릿수 및 정밀도에 따라 달라집니다. 전체 자릿수는 숫자의 숫자 수입니다. 소수 자릿수는 숫자에서 소수점 오른쪽에 있는 자릿수입니다. 예를 들어 123.45의 전체 자릿수는 5이고 소수 자릿수는 2입니다.

Oracle을 사용하면 NUMBER(4,5)와 같이 정밀도보다 큰 소수 자릿수로 숫자를 정의할 수 있지만 SQL Server의 정밀도는 소수 자릿수보다 크거나 같아야 합니다. 데이터 잘림이 없도록 하기 위해 Oracle 게시자에서 소수 자릿수가 전체 자릿수보다 크면 데이터 형식이 매핑될 때 전체 자릿수가 소수 자릿수와 동일하게 설정됩니다. NUMBER(4,5)는 NUMERIC(5,5)로 매핑됩니다.

참고 항목

NUMBER의 소수 자릿수와 전체 자릿수를 지정하지 않으면 SQL Server는 기본적으로 최대 배율(8) 및 전체 자릿수(38)를 사용합니다. 데이터를 복제할 때 더 나은 스토리지를 사용하고 성능을 높이려면 Oracle에서 특정 소수 자릿수와 전체 자릿수를 설정하는 것이 좋습니다.

큰 개체 형식

Oracle은 최대 4GB를 지원하는 반면 SQL Server는 최대 2GB를 지원합니다. 2GB를 초과하는 복제본(replica) 데이터는 잘립니다.

Oracle 테이블에 BFILE 열이 포함되어 있으면 열에 대한 데이터가 파일 시스템에 저장됩니다. 복제본(replica) 관리 사용자 계정에는 다음 구문을 사용하여 데이터가 저장되는 디렉터리에 대한 액세스 권한이 부여되어야 합니다.

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

큰 개체 형식에 대한 자세한 내용은 Oracle 게시자에 대한 디자인 고려 사항 및 제한 사항의 "큰 개체에 대한 고려 사항" 섹션을 참조하세요.

대체 데이터 형식 매핑 지정

일반적으로 기본 데이터 형식 매핑이 적합하지만 많은 Oracle 데이터 형식의 경우 기본값을 사용하지 않고 대체 매핑 집합에서 데이터 형식 매핑을 선택할 수 있습니다. 대체 매핑을 지정하는 방법에는 두 가지가 있습니다.

  • 저장 프로시저 또는 새 게시 마법사를 사용하여 아티클별로 기본값을 재정의합니다.

  • 저장 프로시저를 사용하여 모든 이후 아티클의 기본값을 전역적으로 변경합니다(기존 아티클의 기본값은 변경되지 않음).

대체 데이터 형식 매핑을 지정하려면 Oracle 게시자에 대한 데이터 형식 매핑 지정을 참조하세요.

참고 항목

Oracle 게시자 구성
Oracle 게시자에 대한 디자인 고려 사항 및 제한 사항
Oracle 게시 개요