Oracle 게시자에 대한 데이터 형식 매핑Data Type Mapping for Oracle Publishers

Oracle 데이터 형식 및 MicrosoftMicrosoft SQL ServerSQL Server 데이터 형식이 항상 정확히 일치하지는 않습니다.Oracle data types and MicrosoftMicrosoft SQL ServerSQL Server data types do not always match exactly. Oracle 테이블을 게시할 때 가능한 일치하는 데이터 형식이 자동으로 선택됩니다.Where possible, the matching data type is selected automatically when publishing an Oracle table. 단일 데이터 형식 매핑이 명확하지 않으면 대체 데이터 형식 매핑이 제공됩니다.In cases that a single data type mapping is not clear, alternative data type mappings are provided. 대체 매핑을 선택하는 방법은 아래의 "대체 데이터 형식 매핑 지정" 섹션을 참조하십시오.For information about how to select alternative mappings, see the "Specifying Alternative Data Type Mappings" section later in this topic.

다음 표에서는 Oracle 게시자에서 SQL ServerSQL Server 배포자로 데이터 이동 시 Oracle과 SQL ServerSQL Server 간에 데이터 형식이 기본적으로 매핑되는 방법을 보여 줍니다.The following table shows how data types are mapped by default between Oracle and SQL ServerSQL Server when data is moved from the Oracle Publisher to the SQL ServerSQL Server Distributor. 대체 형식 열은 대체 매핑을 사용할 수 있는지 여부를 나타냅니다.The Alternatives column indicates whether alternative mappings are available.

Oracle 데이터 형식Oracle data type SQL Server 데이터 형식SQL Server data type 대체 형식Alternatives
BFILEBFILE VARBINARY(MAX)VARBINARY(MAX) Yes
BLOBBLOB VARBINARY(MAX)VARBINARY(MAX) Yes
CHAR([1-2000])CHAR([1-2000]) CHAR([1-2000])CHAR([1-2000]) Yes
CLOBCLOB VARCHAR(MAX)VARCHAR(MAX) Yes
DATEDATE DATETIMEDATETIME Yes
FLOATFLOAT FLOATFLOAT 아니요No
FLOAT([1-53])FLOAT([1-53]) FLOAT([1-53])FLOAT([1-53]) 아니요No
FLOAT([54-126])FLOAT([54-126]) FLOATFLOAT 아니요No
INTINT NUMERIC(38)NUMERIC(38) Yes
INTERVALINTERVAL DATETIMEDATETIME Yes
LONGLONG VARCHAR(MAX)VARCHAR(MAX) Yes
LONG RAWLONG RAW IMAGEIMAGE Yes
NCHAR([1-1000])NCHAR([1-1000]) NCHAR([1-1000])NCHAR([1-1000]) 아니요No
NCLOBNCLOB NVARCHAR(MAX)NVARCHAR(MAX) Yes
NUMBERNUMBER FLOATFLOAT Yes
NUMBER([1-38])NUMBER([1-38]) NUMERIC([1-38])NUMERIC([1-38]) 아니요No
NUMBER([0-38],[1-38])NUMBER([0-38],[1-38]) NUMERIC([0-38],[1-38])NUMERIC([0-38],[1-38]) Yes
NVARCHAR2([1-2000])NVARCHAR2([1-2000]) NVARCHAR([1-2000])NVARCHAR([1-2000]) 아니요No
RAW([1-2000])RAW([1-2000]) VARBINARY([1-2000])VARBINARY([1-2000]) 아니요No
REALREAL FLOATFLOAT 아니요No
ROWIDROWID CHAR(18)CHAR(18) 아니요No
TIMESTAMPTIMESTAMP DATETIMEDATETIME Yes
TIMESTAMP(0-7)TIMESTAMP(0-7) DATETIMEDATETIME Yes
TIMESTAMP(8-9)TIMESTAMP(8-9) DATETIMEDATETIME Yes
TIMESTAMP(0-7) WITH TIME ZONETIMESTAMP(0-7) WITH TIME ZONE VARCHAR(37)VARCHAR(37) Yes
TIMESTAMP(8-9) WITH TIME ZONETIMESTAMP(8-9) WITH TIME ZONE VARCHAR(37)VARCHAR(37) 아니요No
TIMESTAMP(0-7) WITH LOCAL TIME ZONETIMESTAMP(0-7) WITH LOCAL TIME ZONE VARCHAR(37)VARCHAR(37) Yes
TIMESTAMP(8-9) WITH LOCAL TIME ZONETIMESTAMP(8-9) WITH LOCAL TIME ZONE VARCHAR(37)VARCHAR(37) 아니요No
UROWIDUROWID CHAR(18)CHAR(18) 아니요No
VARCHAR2([1-4000])VARCHAR2([1-4000]) VARCHAR([1-4000])VARCHAR([1-4000]) Yes

데이터 형식 매핑에 대한 고려 사항Considerations for Data Type Mapping

Oracle 데이터베이스에서 데이터를 복제할 때는 다음 데이터 형식 문제를 고려하십시오.Keep the following data type issues in mind when replicating data from an Oracle database.

지원되지 않는 데이터 형식Unsupported Data Types

다음 데이터 형식은 지원되지 않으므로 이러한 형식이 있는 열은 복제할 수 없습니다.The following data types are not supported; columns that have these types cannot be replicated:

  • 개체 유형Object types

  • XML 유형XML types

  • VarraysVarrays

  • 중첩 테이블Nested tables

  • REF를 사용하는 열Columns that use REF

DATE 데이터 형식The DATE Data Type

SQL ServerSQL Server의 날짜 범위는 1753 A.D.Dates in SQL ServerSQL Server range from 1753 A.D. 9999 A.D.까지이지만 Oracle의 날짜 범위는 4712 B.C.에서to 9999 A.D., whereas dates in Oracle range from 4712 B.C. 4712 A.D.까지입니다.to 4712 A.D. DATE 형식 열에 SQL Server의 범위를 벗어나는 값이 있을 경우 이 열에 대해 대체 데이터 형식인 VARCHAR(19)를 선택합니다.If a column of type DATE contains values that are out of range for SQL Server, select the alternative data type for the column, which is VARCHAR(19).

FLOAT 및 NUMBER 형식FLOAT and NUMBER Types

FLOAT 및 NUMBER 데이터 형식 매핑 중에 지정하는 전체 자릿수 및 소수 자릿수는 Oracle 데이터베이스에서 해당 데이터 형식을 사용하는 열에 지정된 전체 자릿수 및 소수 자릿수에 따라 달라집니다.The scale and precision specified during the mapping of FLOAT and NUMBER data types depends upon the scale and precision specified for the column using the data type in the Oracle database. 전체 자릿수는 숫자의 모든 자릿수이고Precision is the number of digits in a number. 소수 자릿수는 숫자에서 소수점 오른쪽에 있는 자릿수입니다.Scale is the number of digits to the right of the decimal point in a number. 예를 들어 123.45의 전체 자릿수는 5이고 소수 자릿수는 2입니다.For example, the number 123.45 has a precision of 5 and a scale of 2.

Oracle에서는 NUMBER(4,5)처럼 전체 자릿수보다 큰 소수 자릿수로 숫자를 정의할 수 있지만 SQL ServerSQL Server 에서는 전체 자릿수가 소수 자릿수보다 크거나 같아야 합니다.Oracle allows numbers to be defined with a scale greater than the precision, such as NUMBER(4,5), but SQL ServerSQL Server requires the precision to be equal to or greater than the scale. 데이터가 잘리지 않도록 하기 위해 Oracle 게시자에서 소수 자릿수가 전체 자릿수보다 클 경우 데이터 형식이 매핑될 때 전체 자릿수가 소수 자릿수와 동일하게 설정됩니다.NUMBER(4,5)는 NUMERIC(5,5)로 매핑됩니다.To ensure there is no data truncation, if the scale is greater than the precision at the Oracle Publisher, the precision is set equal to the scale when the data type is mapped: NUMBER(4,5) would be mapped as NUMERIC(5,5).

참고

NUMBER에 대한 소수 자릿수와 전체 자릿수를 지정하지 않으면 SQL ServerSQL Server 에서는 기본적으로 최대 소수 자릿수(8)와 최대 전체 자릿수(38)를 사용합니다.If you do not specify a scale and precision for NUMBER, SQL ServerSQL Server defaults to using the maximum scale (8) and precision (38). 데이터를 복제할 때 더 나은 저장소를 사용하고 성능을 높이려면 Oracle에서 특정 소수 자릿수와 전체 자릿수를 설정하는 것이 좋습니다.We recommend that you set a specific scale and precision in Oracle for better storage and performance when the data is replicated.

큰 개체 유형Large Object Types

Oracle에서는 최대 4GB를 지원하지만 SQL Server에서는 최대 2GB를 지원합니다.Oracle supports up to 4 gigabytes (GB), whereas SQL Server supports up to 2 GB. 2GB 이상으로 복제된 데이터는 잘립니다.Data replicated above 2 GB is truncated.

Oracle 테이블에 BFILE 열이 포함되어 있는 경우에는 이 열의 데이터가 파일 시스템에 저장됩니다.If an Oracle table includes a BFILE column, the data for the column is stored in the file system. 다음 구문을 사용하여 복제 관리 사용자 계정에 데이터가 저장되어 있는 디렉터리에 대한 액세스 권한을 부여해야 합니다.The replication administrative user account must be granted access to the directory in which the data is stored using the following syntax:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

큰 개체 유형에 대한 자세한 내용은 Oracle 게시자에 대한 디자인 고려 사항 및 제한 사항에서 "큰 개체에 대한 고려 사항" 섹션을 참조하세요.For more information about large objects types, see the section "Considerations for Large Objects" in Design Considerations and Limitations for Oracle Publishers.

대체 데이터 형식 매핑 지정Specifying Alternative Data Type Mappings

일반적으로 기본 데이터 형식 매핑이 적합하지만 많은 Oracle 데이터 형식의 경우 기본값을 사용하지 않고 대체 매핑 집합에서 데이터 형식 매핑을 선택할 수 있습니다.Typically, the default data type mapping is appropriate, but for many Oracle data types, you can select a data type mapping from a set of alternative mappings, rather than using the default. 다음 두 가지 방법으로 대체 매핑을 지정할 수 있습니다.There are two ways to specify alternative mappings:

  • 저장 프로시저나 새 게시 마법사를 사용하여 아티클별로 기본값을 덮어씁니다.Override the default on a per-article basis using stored procedures or the New Publication Wizard.

  • 저장 프로시저를 사용하여 이후의 모든 아티클에 대한 기본값을 전역으로 변경합니다. 기존 아티클에 대한 기본값은 변경되지 않습니다.Globally change the default for all future articles using stored procedures (defaults are not changed for existing articles).

    대체 데이터 형식 매핑을 지정하려면 Specify Data Type Mappings for an Oracle Publisher을 참조하십시오.To specify alternative data type mappings, see Specify Data Type Mappings for an Oracle Publisher.

참고 항목See Also

Oracle 게시자 구성 Configure an Oracle Publisher
Oracle 게시자에 대한 디자인 고려 사항 및 제한 사항 Design Considerations and Limitations for Oracle Publishers
Oracle Publishing OverviewOracle Publishing Overview