All Products
Search
Document Center

Data Transmission Service:Data type mappings for initial schema synchronization

Last Updated:Mar 28, 2026

When DTS synchronizes data between heterogeneous databases, it automatically maps source data types to compatible types in the destination database during initial schema synchronization. This topic lists the mappings for each supported source database so you can evaluate the impact on your data before starting a synchronization task.

Note

If a source value falls outside the range that DTS supports for a given mapping, DTS reduces the data precision when writing to the destination instance.

Overview

The following source databases are covered:

  • MySQL (RDS for MySQL, self-managed MySQL, PolarDB for MySQL)

  • Oracle (self-managed Oracle)

  • PostgreSQL (self-managed PostgreSQL, RDS for PostgreSQL)

  • SQL Server (self-managed SQL Server, RDS for SQL Server)

  • Db2 for LUW

  • Db2 for i

  • TiDB (self-managed TiDB)

Data synchronization from a MySQL source

AnalyticDB for MySQL and AnalyticDB for PostgreSQL

Note

When synchronizing to AnalyticDB for MySQL:

DTS converts an INT field with the AUTO_INCREMENT attribute to BIGINT in the destination.

If a table used in a JOIN operation contains both INT and BIGINT fields, use the same type for both fields in the destination to avoid performance issues.

TypeSource data typeValue rangeAnalyticDB for MySQLAnalyticDB for PostgreSQL
IntegerBIT[(M)]1 to 64VARCHARBIT[(M)]
IntegerTINYINT[(M)]-128 to 127TINYINTSMALLINT
IntegerTINYINT[(M)] [UNSIGNED]0 to 255SMALLINTSMALLINT
IntegerSMALLINT[(M)]-32768 to 32767SMALLINTSMALLINT
IntegerSMALLINT[(M)] [UNSIGNED]0 to 65535INTINTEGER
IntegerMEDIUMINT[(M)]-8388608 to 8388607INTINTEGER
IntegerMEDIUMINT[(M)] [UNSIGNED]0 to 16777215INTINTEGER
IntegerINT[(M)]-2147483648 to 2147483647INTINTEGER
IntegerINT[(M)] [UNSIGNED]0 to 4294967295BIGINTBIGINT
IntegerBIGINT[(M)]-9223372036854775808 to 9223372036854775807BIGINTBIGINT
IntegerBIGINT[(M)] [UNSIGNED]0 to 18446744073709551615DECIMAL(20,0)NUMERIC(20)
DecimalDECIMAL[(M[,D])]M: 0 to 65; D: 0 to 30DECIMAL[(M[,D])]DECIMAL[(M[,D])]
DecimalFLOAT(p)1.175494351E-38 to 3.402823466E+38FLOATREAL
DecimalDOUBLE[(M,D)]2.2250738585072014E-308 to 1.7976931348623157E+308DOUBLEDOUBLE PRECISION
Date/timeDATE1000-01-01 to 9999-12-31 (YYYY-MM-DD)DATEDATE
Date/timeDATETIME[(fsp)]1000-01-01 00:00:00.000000 to 9999-12-31 23:59:59.999999 (UTC)DATETIMETIMESTAMP
Date/timeTIMESTAMP[(fsp)]1970-01-01 00:00:01.000000 to 2038-01-19 03:14:07.999999 (UTC)TIMESTAMPTIMESTAMP WITH TIME ZONE
Date/timeTIME[(fsp)]-838:59:59.000000 to 838:59:59.000000 (hh:mm:ss[.fraction], UTC)TIMETIMESTAMP WITH TIME ZONE
Date/timeYEAR[(4)]1901 to 2155, or 0000INTINTEGER
StringCHAR[(M)]0 to 255 charactersVARCHARCHAR
StringVARCHAR(M)0 to 65,535 charactersVARCHARVARCHAR
StringBINARY[(M)]0 to 255 bytesVARBINARYBYTEA
StringVARBINARY(M)0 to 65,535 bytesVARBINARYBYTEA
StringTINYBLOB255 (2^8 - 1) bytesVARBINARYBYTEA
StringTINYTEXT255 (2^8 - 1) charactersVARCHARTEXT
StringBLOB65,535 (2^16 - 1) bytesVARBINARYBYTEA
StringTEXT65,535 (2^16 - 1) charactersVARCHARTEXT
StringMEDIUMBLOB16,777,215 (2^24 - 1) bytesVARBINARYBYTEA
StringMEDIUMTEXT16,777,215 (2^24 - 1) charactersVARCHARTEXT
StringLONGBLOB4,294,967,295 (2^32 - 1) bytesVARBINARYBYTEA
StringLONGTEXT4,294,967,295 (2^32 - 1) charactersVARCHARTEXT
StringENUM('value1','value2',...)Up to 65,535 enumeration valuesVARCHARVARCHAR(128)
StringSET('value1','value2',...)Up to 64 elementsVARCHARVARCHAR(128)
SpatialGEOMETRYAny geometry typeVARBINARYPOLYGON
SpatialPOINTVARBINARYPOINT
SpatialLINESTRINGVARBINARYPATH
SpatialPOLYGONVARBINARYPOLYGON
SpatialMULTIPOINTVARBINARYPOLYGON
SpatialMULTILINESTRINGVARBINARYPATH
SpatialMULTIPOLYGONVARBINARYPOLYGON
SpatialGEOMETRYCOLLECTIONAny geometry type collectionVARBINARYPOLYGON
JSONJSONJSONJSON

DataHub and Kafka

Kafka (Message Queue for Apache Kafka or self-managed Kafka) preserves the source data type from MySQL or PolarDB for MySQL without conversion.

TypeSource data typeValue rangeDataHubKafka
IntegerBIT[(M)]1 to 64BOOLEAN | STRINGSame as MySQL
IntegerTINYINT[(M)]-128 to 127BIGINTSame as MySQL
IntegerTINYINT[(M)] [UNSIGNED]0 to 255BIGINTSame as MySQL
IntegerSMALLINT[(M)]-32768 to 32767BIGINTSame as MySQL
IntegerSMALLINT[(M)] [UNSIGNED]0 to 65535BIGINTSame as MySQL
IntegerMEDIUMINT[(M)]-8388608 to 8388607BIGINTSame as MySQL
IntegerMEDIUMINT[(M)] [UNSIGNED]0 to 16777215BIGINTSame as MySQL
IntegerINT[(M)]-2147483648 to 2147483647BIGINTSame as MySQL
IntegerINT[(M)] [UNSIGNED]0 to 4294967295BIGINTSame as MySQL
IntegerBIGINT[(M)]-9223372036854775808 to 9223372036854775807BIGINTSame as MySQL
IntegerBIGINT[(M)] [UNSIGNED]0 to 18446744073709551615BIGINTSame as MySQL
DecimalDECIMAL[(M[,D])]M: 0 to 65; D: 0 to 30DECIMALSame as MySQL
DecimalFLOAT(p)1.175494351E-38 to 3.402823466E+38DOUBLESame as MySQL
DecimalDOUBLE[(M,D)]2.2250738585072014E-308 to 1.7976931348623157E+308DOUBLESame as MySQL
Date/timeDATE1000-01-01 to 9999-12-31TIMESTAMPSame as MySQL
Date/timeDATETIME[(fsp)]1000-01-01 00:00:00.000000 to 9999-12-31 23:59:59.999999TIMESTAMPSame as MySQL
Date/timeTIMESTAMP[(fsp)]1970-01-01 00:00:01.000000 to 2038-01-19 03:14:07.999999TIMESTAMPSame as MySQL
Date/timeTIME[(fsp)]-838:59:59.000000 to 838:59:59.000000STRINGSame as MySQL
Date/timeYEAR[(4)]1901 to 2155, or 0000STRINGSame as MySQL
StringCHAR[(M)]0 to 255 charactersSTRINGSame as MySQL
StringVARCHAR(M)0 to 65,535 charactersSTRINGSame as MySQL
StringBINARY[(M)]0 to 255 bytesSTRINGSame as MySQL
StringVARBINARY(M)0 to 65,535 bytesSTRINGSame as MySQL
StringTINYBLOB255 (2^8 - 1) bytesSTRINGSame as MySQL
StringTINYTEXT255 (2^8 - 1) charactersSTRINGSame as MySQL
StringBLOB65,535 (2^16 - 1) bytesSTRINGSame as MySQL
StringTEXT65,535 (2^16 - 1) charactersSTRINGSame as MySQL
StringMEDIUMBLOB16,777,215 (2^24 - 1) bytesSTRINGSame as MySQL
StringMEDIUMTEXT16,777,215 (2^24 - 1) charactersSTRINGSame as MySQL
StringLONGBLOB4,294,967,295 (2^32 - 1) bytesSTRINGSame as MySQL
StringLONGTEXT4,294,967,295 (2^32 - 1) charactersSTRINGSame as MySQL
StringENUM('value1','value2',...)Up to 65,535 elementsSTRINGSame as MySQL
StringSET('value1','value2',...)Up to 64 elementsSTRINGSame as MySQL
SpatialGEOMETRYAny geometry typeSTRINGSame as MySQL
SpatialPOINTSTRINGSame as MySQL
SpatialLINESTRINGSTRINGSame as MySQL
SpatialPOLYGONSTRINGSame as MySQL
SpatialMULTIPOINTSTRINGSame as MySQL
SpatialMULTILINESTRINGSTRINGSame as MySQL
SpatialMULTIPOLYGONSTRINGSame as MySQL
SpatialGEOMETRYCOLLECTIONAny geometry type collectionSTRINGSame as MySQL
JSONJSONSTRINGSame as MySQL

MaxCompute, Elasticsearch, and ClickHouse

Note

Elasticsearch-specific behavior:

BIT: Use BOOLEAN when the value is a single byte; otherwise use LONG.

DECIMAL: Use TEXT instead of DOUBLE when the value contains a decimal point, to preserve data consistency.

DATE format: YYYY-MM-DD. DATETIME and TIMESTAMP format: yyyy-MM-dd'T'HH:mm:ss (UTC); microsecond precision: yyyy-MM-dd'T'HH:mm:ss.S. YEAR format: yyyy. See Elasticsearch date format. ClickHouse-specific behavior:

DATE: The supported range in ClickHouse is smaller than in MySQL. Using DATE may cause write failures.

DATETIME: The same range limitation applies.

TIMESTAMP: Time zone information is not preserved.

TypeSource data typeValue rangeMaxComputeElasticsearchClickHouse
IntegerBIT[(M)]1 to 64BOOLEAN | STRINGBOOLEAN | LONGUInt8
IntegerTINYINT[(M)]-128 to 127BIGINTSHORTInt8
IntegerTINYINT[(M)] [UNSIGNED]0 to 255BIGINTINTEGERUInt8
IntegerSMALLINT[(M)]-32768 to 32767BIGINTSHORTInt16
IntegerSMALLINT[(M)] [UNSIGNED]0 to 65535BIGINTINTEGERUInt16
IntegerMEDIUMINT[(M)]-8388608 to 8388607BIGINTINTEGERInt32
IntegerMEDIUMINT[(M)] [UNSIGNED]0 to 16777215BIGINTINTEGERInt32
IntegerINT[(M)]-2147483648 to 2147483647BIGINTINTEGERInt32
IntegerINT[(M)] [UNSIGNED]0 to 4294967295BIGINTLONGUInt32
IntegerBIGINT[(M)]-9223372036854775808 to 9223372036854775807BIGINTLONGInt64
IntegerBIGINT[(M)] [UNSIGNED]0 to 18446744073709551615BIGINTLONGUInt64
DecimalDECIMAL[(M[,D])]M: 0 to 65; D: 0 to 30DOUBLEDOUBLEDECIMAL
DecimalFLOAT(p)1.175494351E-38 to 3.402823466E+38DOUBLEFLOATFloat32
DecimalDOUBLE[(M,D)]2.2250738585072014E-308 to 1.7976931348623157E+308DOUBLEDOUBLEFloat64
Date/timeDATE1000-01-01 to 9999-12-31DATETIMEDATEDATE32
Date/timeDATETIME[(fsp)]1000-01-01 00:00:00.000000 to 9999-12-31 23:59:59.999999DATETIMEDATEDATETIME64
Date/timeTIMESTAMP[(fsp)]1970-01-01 00:00:01.000000 to 2038-01-19 03:14:07.999999DATETIMEDATEDATETIME
Date/timeTIME[(fsp)]-838:59:59.000000 to 838:59:59.000000STRINGDATESTRING
Date/timeYEAR[(4)]1901 to 2155, or 0000STRINGDATEInt16
StringCHAR[(M)]0 to 255 charactersSTRINGKEYWORDSTRING
StringVARCHAR(M)≤255 charactersSTRINGKEYWORDSTRING
StringVARCHAR(M)>255 charactersSTRINGTEXTSTRING
StringBINARY[(M)]0 to 255 bytesSTRINGBINARYSTRING
StringVARBINARY(M)0 to 65,535 bytesSTRINGBINARYSTRING
StringTINYBLOB255 (2^8 - 1) bytesSTRINGBINARYSTRING
StringTINYTEXT255 (2^8 - 1) charactersSTRINGTEXTSTRING
StringBLOB65,535 (2^16 - 1) bytesSTRINGBINARYSTRING
StringTEXT65,535 (2^16 - 1) charactersSTRINGTEXTSTRING
StringMEDIUMBLOB16,777,215 (2^24 - 1) bytesSTRINGBINARYSTRING
StringMEDIUMTEXT16,777,215 (2^24 - 1) charactersSTRINGTEXTSTRING
StringLONGBLOB4,294,967,295 (2^32 - 1) bytesSTRINGBINARYSTRING
StringLONGTEXT4,294,967,295 (2^32 - 1) charactersSTRINGTEXTSTRING
StringENUM('value1','value2',...)Up to 65,535 enumeration valuesSTRINGKEYWORDENUM
StringSET('value1','value2',...)Up to 64 elementsSTRINGKEYWORDSTRING
SpatialGEOMETRYAny geometry typeSTRINGGEO_SHAPESTRING
SpatialPOINTSTRINGGEO_POINTSTRING
SpatialLINESTRINGSTRINGGEO_SHAPESTRING
SpatialPOLYGONSTRINGGEO_SHAPESTRING
SpatialMULTIPOINTSTRINGGEO_SHAPESTRING
SpatialMULTILINESTRINGSTRINGGEO_SHAPESTRING
SpatialMULTIPOLYGONSTRINGGEO_SHAPESTRING
SpatialGEOMETRYCOLLECTIONAny geometry type collectionSTRINGGEO_SHAPESTRING
JSONJSONSTRINGOBJECTSTRING

Tablestore

Source data typeTablestore data type
INTEGERINTEGER
INTINTEGER
SMALLINTINTEGER
TINYINTINTEGER
MEDIUMINTINTEGER
BIGINTINTEGER
DECIMALDOUBLE
NUMERICDOUBLE
FLOATDOUBLE
DOUBLEDOUBLE
BITBOOLEAN
DATE / TIMESTAMP / DATETIME / TIME / YEARSTRING or INTEGER (default: STRING)
CHARSTRING
VARCHARSTRING
BINARYBINARY
VARBINARYBINARY
TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOBBINARY
TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXTSTRING
ENUMSTRING
SETSTRING
GEOMETRY / POINT / LINESTRING / POLYGON / MULTIPOINT / MULTILINESTRING / MULTIPOLYGON / GEOMETRYCOLLECTIONSTRING
JSONSTRING

Lindorm

Note

Lindorm-specific behavior:

BIGINT UNSIGNED: Only values within the BIGINT range (-9223372036854775808 to 9223372036854775807) are supported.

DECIMAL: The precision must match the corresponding field in the source instance.

DATE: Mapped to DATE on Lindorm 2.8.0.2 or later; mapped to VARCHAR on earlier versions.

DATETIME: Map to VARCHAR. Mapping to TIMESTAMP may cause data inconsistency due to time zone differences. Use the extract, transform, and load (ETL) feature during task configuration to ensure data consistency.

TIME: Mapped to TIME on Lindorm 2.8.0.2 or later (format: hh:mm:ss; excess precision is truncated — for example, 08:11:15.354 becomes 08:11:15); mapped to VARCHAR on earlier versions.

Source data typeLindorm data type
BOOLEANBOOLEAN
BITBOOLEAN
TINYINTTINYINT
SMALLINTSMALLINT
INTEGERINTEGER
BIGINTBIGINT
BIGINT UNSIGNEDBIGINT
FLOATFLOAT
DOUBLEDOUBLE
DECIMALDECIMAL
CHAR / VARCHAR / TEXT / TINYTEXT / MEDIUMTEXT / LONGTEXTCHAR / VARCHAR
BINARYBINARY
BLOBVARBINARY
VARBINARYVARBINARY
TIMESTAMPTIMESTAMP
YEARINTEGER
DATEDATE (Lindorm 2.8.0.2 or later) / VARCHAR (earlier versions)
DATETIMEVARCHAR
TIMETIME (Lindorm 2.8.0.2 or later) / VARCHAR (earlier versions)
JSONJSON

Oracle

Note

MySQL-to-Oracle conversion behavior:

DECIMAL: If precision and scale are not specified, the type is converted to NUMBER.

DATETIME: If precision is not specified, the type is converted to TIMESTAMP(0).

TIMESTAMP: If precision is not specified, the type is converted to TIMESTAMP(0) WITH LOCAL TIME ZONE.

CHAR: If length is not specified, the type is converted to CHAR(1).

BINARY: If length is not specified, the type is converted to RAW(1).

ENUM, SET, and all spatial types are not supported. To exclude unsupported columns, use column filtering when configuring the task.

TypeSource data typeValue rangeOracle data type
IntegerBIT[(M)]1 to 64NUMBER(2,0)
IntegerTINYINT[(M)]-128 to 127NUMBER(3,0)
IntegerTINYINT[(M)] [UNSIGNED]0 to 255NUMBER(3,0)
IntegerSMALLINT[(M)]-32768 to 32767NUMBER(5,0)
IntegerSMALLINT[(M)] [UNSIGNED]0 to 65535NUMBER(5,0)
IntegerMEDIUMINT[(M)]-8388608 to 8388607NUMBER(7,0)
IntegerMEDIUMINT[(M)] [UNSIGNED]0 to 16777215NUMBER(7,0)
IntegerINT[(M)]-2147483648 to 2147483647INT
IntegerINT[(M)] [UNSIGNED]0 to 4294967295NUMBER(10,0)
IntegerBIGINT[(M)]-9223372036854775808 to 9223372036854775807NUMBER(20,0)
IntegerBIGINT[(M)] [UNSIGNED]0 to 18446744073709551615NUMBER(20,0)
DecimalDECIMAL[(M[,D])]M: 0 to 65; D: 0 to 30NUMBER(M,D)
DecimalFLOAT(p)1.175494351E-38 to 3.402823466E+38FLOAT
DecimalDOUBLE[(M,D)]2.2250738585072014E-308 to 1.7976931348623157E+308DOUBLE
Date/timeDATE1000-01-01 to 9999-12-31DATE
Date/timeDATETIME[(fsp)]1000-01-01 00:00:00.000000 to 9999-12-31 23:59:59.999999TIMESTAMP[(fsp)]
Date/timeTIMESTAMP[(fsp)]1970-01-01 00:00:01.000000 to 2038-01-19 03:14:07.999999TIMESTAMP[(fsp)] WITH LOCAL TIME ZONE
Date/timeTIME[(fsp)]-838:59:59.000000 to 838:59:59.000000Not supported
Date/timeYEAR[(4)]1901 to 2155, or 0000INT
StringCHAR[(M)]0 to 255 charactersCHAR[(M)]
StringVARCHAR(M)0 to 65,535 charactersVARCHAR(M)
StringBINARY[(M)]0 to 255 bytesRAW(M)
StringVARBINARY(M)0 to 65,535 bytesRAW(M)
StringTINYBLOB255 (2^8 - 1) bytesBLOB
StringTINYTEXT255 (2^8 - 1) charactersTEXT
StringBLOB65,535 (2^16 - 1) bytesBLOB
StringTEXT65,535 (2^16 - 1) charactersTEXT
StringMEDIUMBLOB16,777,215 (2^24 - 1) bytesBLOB
StringMEDIUMTEXT16,777,215 (2^24 - 1) charactersTEXT
StringLONGBLOB4,294,967,295 (2^32 - 1) bytesBLOB
StringLONGTEXT4,294,967,295 (2^32 - 1) charactersTEXT
StringENUM('value1','value2',...)Up to 65,535 enumeration valuesNot supported
StringSET('value1','value2',...)Up to 64 elementsNot supported
SpatialGEOMETRYAny geometry typeNot supported
SpatialPOINTNot supported
SpatialLINESTRINGNot supported
SpatialPOLYGONNot supported
SpatialMULTIPOINTNot supported
SpatialMULTILINESTRINGNot supported
SpatialMULTIPOLYGONNot supported
SpatialGEOMETRYCOLLECTIONAny geometry type collectionNot supported
JSONJSONCLOB

Destination instance: AnalyticDB for MySQL or AnalyticDB for PostgreSQL

Note

When you synchronize data to AnalyticDB for MySQL, note the following:

  • DTS converts an INT field with the AUTO_INCREMENT attribute in the source database to the BIGINT type in the destination database.

  • To avoid a performance impact, if a table used in a JOIN operation contains both INT and BIGINT fields, ensure that both fields use the same data type (INT or BIGINT) in the destination database.

Type

Source data type

Value range

Data type in AnalyticDB for MySQL

Data type in AnalyticDB for PostgreSQL

Integer

BIT[(M)]

1 to 64

VARCHAR

BIT[(M)]

TINYINT[(M)]

-128 to 127

TINYINT

SMALLINT

TINYINT[(M)] [UNSIGNED]

0 to 255

SMALLINT

SMALLINT

SMALLINT[(M)]

-32768 to 32767

SMALLINT

SMALLINT

SMALLINT[(M)] [UNSIGNED]

0 to 65535

INT

INTEGER

MEDIUMINT[(M)]

-8388608 to 8388607

INT

INTEGER

MEDIUMINT[(M)] [UNSIGNED]

0 to 16777215

INT

INTEGER

INT[(M)]

-2147483648 to 2147483647

INT

INTEGER

INT[(M)] [UNSIGNED]

0 to 4294967295

BIGINT

BIGINT

BIGINT[(M)]

-9223372036854775808 to 9223372036854775807

BIGINT

BIGINT

BIGINT[(M)] [UNSIGNED]

0 to 18446744073709551615

DECIMAL(20,0)

NUMERIC(20)

Decimal

DECIMAL[(M[,D])]

M: 0 to 65

D: 0 to 30

DECIMAL[(M[,D])]

DECIMAL[(M[,D])]

FLOAT(p)

1.175494351E-38 to 3.402823466E+38

FLOAT

REAL

DOUBLE[(M,D)]

2.2250738585072014E-308 to 1.7976931348623157E+308

DOUBLE

DOUBLE PRECISION

Time Type

DATE

1000-01-01 to 9999-12-31

Note

Format: YYYY-MM-DD.

DATE

DATE

DATETIME[(fsp)]

1000-01-01 00:00:00.000000 to 9999-12-31 23:59:59.999999

Note

Format: YYYY-MM-DD hh:mm:ss[.fraction] (UTC).

DATETIME

TIMESTAMP

TIMESTAMP[(fsp)]

1970-01-01 00:00:01.000000 to 2038-01-19 03:14:07.999999

Note

Format: YYYY-MM-DD hh:mm:ss[.fraction] (UTC).

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIME[(fsp)]

-838:59:59.000000 to 838:59:59.000000

Note

Format: hh:mm:ss[.fraction] (UTC).

TIME

TIMESTAMP WITH TIME ZONE

YEAR[(4)]

1901 to 2155, or 0000

INT

INTEGER

String

CHAR[(M)]

0 to 255 characters

VARCHAR

CHAR

VARCHAR(M)

0 to 65,535 characters

VARCHAR

VARCHAR

BINARY[(M)]

0 to 255 bytes

VARBINARY

BYTEA

VARBINARY(M)

0 to 65,535 bytes

VARBINARY

BYTEA

TINYBLOB

255 (2^8 - 1) bytes

VARBINARY

BYTEA

TINYTEXT

255 (2^8 - 1) characters

VARCHAR

TEXT

BLOB

65,535 (2^16 - 1) bytes

VARBINARY

BYTEA

TEXT

65,535 (2^16 - 1) characters

VARCHAR

TEXT

MEDIUMBLOB

16,777,215 (2^24 - 1) bytes

VARBINARY

BYTEA

MEDIUMTEXT

16,777,215 (2^24 - 1) characters

VARCHAR

TEXT

LONGBLOB

4,294,967,295 or 4 GB (2^32 - 1) bytes

VARBINARY

BYTEA

LONGTEXT

4,294,967,295 or 4 GB (2^32 - 1) characters

VARCHAR

TEXT

ENUM('value1','value2',...)

A maximum of 65,535 enumeration values.

VARCHAR

VARCHAR(128)

SET('value1','value2',...)

A maximum of 64 elements.

VARCHAR

VARCHAR(128)

Space types

GEOMETRY

A value of any geometry type.

VARBINARY

POLYGON

POINT

None

VARBINARY

POINT

LINESTRING

None

VARBINARY

PATH

POLYGON

None

VARBINARY

POLYGON

MULTIPOINT

None

VARBINARY

POLYGON

MULTILINESTRING

None

VARBINARY

PATH

MULTIPOLYGON

None

VARBINARY

POLYGON

GEOMETRYCOLLECTION

A collection of values of any geometry type.

VARBINARY

POLYGON

JSON data type

JSON

None

JSON

JSON

Data synchronization from an Oracle source

When the source is a self-managed Oracle database, DTS maps data types to MySQL, PolarDB for MySQL, PolarDB-X, or AnalyticDB for PostgreSQL as shown below.

Note

DTS converts unsupported field types to BYTEA in AnalyticDB for PostgreSQL. If the conversion fails, DTS sets the field value to NULL.

TypeOracle data typeValue rangeMySQL / PolarDB for MySQL / PolarDB-XAnalyticDB for PostgreSQL
NumericNUMBER(p,s)1–22 bytes; p: 1–38; s: -84 to 127DECIMAL[(p[,s])] (unspecified: DECIMAL(65,30))DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT
NumericFLOAT(p)1–22 bytes; p: 1–126 bitsDOUBLEDOUBLE PRECISION
NumericBINARY_FLOAT32-bit float (4 bytes)FLOATDOUBLE PRECISION
NumericBINARY_DOUBLE64-bit float (8 bytes)DOUBLEDOUBLE PRECISION
Date/timeDATEDATETIMETIMESTAMP(0)
Date/timeTIMESTAMP[(fsp)]DATETIME[(fsp)]TIMESTAMP
Date/timeTIMESTAMP[(fsp)] WITH TIME ZONEDATETIME[(fsp)]TIMESTAMP WITH TIME ZONE
Date/timeTIMESTAMP[(fsp)] WITH LOCAL TIME ZONEDATETIME[(fsp)]TIMESTAMP WITH TIME ZONE
Date/timeINTERVAL YEAR[(y)] TO MONTHNot supportedVARCHAR(32)
Date/timeINTERVAL DAY[(d)] TO SECOND[(fsp)]Not supportedVARCHAR(32)
StringCHAR[(size [BYTE|CHAR])]2,000 bytesCHAR[(n)] (unspecified: CHAR(1))CHAR
StringNCHAR[(size)]2,000 bytesNATIONAL CHAR[(n)] (unspecified: NATIONAL CHAR(1))VARCHAR
StringVARCHAR(size [BYTE|CHAR])EXTENDED: 32,767 bytes; STANDARD: 4,000 bytesVARCHAR(n)VARCHAR(n)
StringVARCHAR2(size [BYTE|CHAR])EXTENDED: 32,767 bytes; STANDARD: 4,000 bytesVARCHAR(n)VARCHAR
StringNVARCHAR2(size)EXTENDED: 32,767 bytes; STANDARD: 4,000 bytesNATIONALVARCHAR[(n)]VARCHAR
StringLONGMax 2 GB (2^31 - 1)LONGTEXTTEXT
StringRAW(size)Max 32,767 bytes or 2,000 bytesBINARY(2*size)BYTEA
StringLONG RAWMax 2 GBLONGBLOBBYTEA
StringCLOBMax (4 GB - 1) × DB_BLOCK_SIZELONGTEXTTEXT
StringNCLOBMax (4 GB - 1) × DB_BLOCK_SIZELONGTEXTTEXT
StringBLOBMax (4 GB - 1) × DB_BLOCK_SIZELONGBLOBBYTEA
StringBFILE4 GBNot supportedNot supported
JSONJSONMax 32 MBNot supportedJSON
Row IDROWID64 charactersNot supportedOID
Row IDUROWID64 charactersNot supportedNot supported
SpatialCustom typesNot supportedNot supported

Data synchronization from a PostgreSQL source

When the source is a self-managed PostgreSQL database or an RDS for PostgreSQL instance, DTS maps data types to AnalyticDB for PostgreSQL as shown below.

Note

If the destination is ClickHouse, BOOLEAN is converted to STRING.

TypePostgreSQL data typeValue rangeAnalyticDB for PostgreSQL
IntegerSMALLINT-32768 to +32767SMALLINT
IntegerINTEGER-2147483648 to +2147483647INTEGER
IntegerBIGINT-9223372036854775808 to +9223372036854775807BIGINT
DecimalDECIMALUp to 131,072 digits before the decimal point; 16,383 afterDECIMAL
DecimalNUMERICUp to 131,072 digits before the decimal point; 16,383 afterNUMERIC
DecimalREAL6 decimal digits of precisionREAL
DecimalDOUBLE PRECISION15 decimal digits of precisionDOUBLE PRECISION
CurrencyMONEY-92233720368547758.08 to +92233720368547758.07MONEY
StringCHARACTER VARYING(n)CHARACTER VARYING(n)
StringCHARACTER(n)CHARACTER(n)
StringTEXTTEXT
StringCHARDefault: 1 byteCHAR
StringNAMEMax 64 bytesNAME
Text searchTSQUERYText search queryTEXT
Text searchTSVECTORText search documentTEXT
BinaryBYTEA1 or 4 bytes + binary stringBYTEA
Date/timeTIMESTAMP[(p)] [WITHOUT TIME ZONE]8 bytesTIMESTAMP[(p)] [WITHOUT TIME ZONE]
Date/timeTIMESTAMP[(p)] WITH TIME ZONE8 bytesTIMESTAMP[(p)] WITH TIME ZONE
Date/timeDATE4 bytesDATE
Date/timeTIME[(p)] [WITHOUT TIME ZONE]8 bytesTIME[(p)] [WITHOUT TIME ZONE]
Date/timeTIME[(p)] WITH TIME ZONE12 bytesTIME[(p)] WITH TIME ZONE
Date/timeinterval [fields] [(p)]16 bytesinterval [fields] [(p)]
BooleanBOOLEAN1 byteBOOLEAN
EnumCustom enumerationVARCHAR(128)
SpatialPOINT16 bytesPOINT
SpatialLINE32 bytesLINE
SpatialLSEG32 bytesLSEG
SpatialBOX32 bytesBOX
SpatialPATH16 + 16n bytesPATH
SpatialPOLYGON40 + 16n bytesPOLYGON
SpatialCIRCLE24 bytesCIRCLE
NetworkCIDRIPv4 and IPv6 networks (7 or 19 bytes)CIDR
NetworkINETIPv4 and IPv6 hosts and networks (7 or 19 bytes)INET
NetworkMACADDRMAC address (6 bytes)MACADDR
NetworkMACADDR8MAC address in EUI-64 format (8 bytes)MACADDR8
Bit stringBIT(n)BIT(n)
Bit stringBIT VARYING(n)BIT VARYING(n)
UUIDUUIDVARCHAR(64)
XMLXMLXML
JSONJSONJSON
JSONJSONBJSONB

Data synchronization from an SQL Server source

When the source is a self-managed SQL Server database or an RDS for SQL Server instance, DTS maps data types to AnalyticDB for MySQL, PostgreSQL or AnalyticDB for PostgreSQL, and MySQL or PolarDB for MySQL as shown below.

TypeSQL Server data typeValue rangeAnalyticDB for MySQLPostgreSQL / AnalyticDB for PostgreSQLMySQL / PolarDB for MySQL
IntegerBIT1, 0, or NULLBOOLEANBIT(1)BIT(1)
IntegerTINYINT0 to 255TINYINTSMALLINTTINYINT UNSIGNED
IntegerSMALLINT-32,768 to 32,767SMALLINTSMALLINTSMALLINT
IntegerINT-2,147,483,648 to 2,147,483,647INTEGERINTEGERINT
IntegerBIGINT-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807BIGINTBIGINTBIGINT
DecimalNUMERIC[(p,s)]-10^38+1 to 10^38-1; 1 ≤ p ≤ 38DECIMALDECIMALDECIMAL[(p,s)]
DecimalDECIMAL[(p,s)]-10^38+1 to 10^38-1; 1 ≤ p ≤ 38DECIMALDECIMALDECIMAL[(p,s)]
DecimalFLOAT-1.79E+308 to -2.23E-308, 0, and 2.23E-308 to 1.79E+308DOUBLEDOUBLE PRECISIONDOUBLE
DecimalREAL-3.40E+38 to -1.18E-38, 0, and 1.18E-38 to 3.40E+38FLOATREALDOUBLE
CurrencyMONEY-922,337,203,685,477.5808 to 922,337,203,685,477.5807DECIMAL(19,4)DECIMAL(19,4)DECIMAL(19,4)
CurrencySMALLMONEY-214,748.3648 to 214,748.3647DECIMAL(10,4)DECIMAL(10,4)DECIMAL(10,4)
Date/timeDATE0001-01-01 to 9999-12-31DATEDATEDATE
Date/timeDATETIMEJan 1, 1753 to Dec 31, 9999; 00:00:00 to 23:59:59.997DATETIMETIMESTAMP(3) WITHOUT TIME ZONEDATETIME(3)
Date/timeDATETIME2[(p)]0001-01-01 to 9999-12-31; 00:00:00 to 23:59:59.9999999DATETIMETIMESTAMP(7) WITHOUT TIME ZONEDATETIME(p) (default: p=6)
Date/timeDATETIMEOFFSET[(p)]0001-01-01 to 9999-12-31; time zone offset: -14:00 to +14:00TIMESTAMPTIMESTAMP(7) WITH TIME ZONEDATETIME(p) (default: p=6)
Date/timeSMALLDATETIMESeconds always :00; no fractional secondsDATETIMETIMESTAMP WITHOUT TIME ZONEDATETIME
Date/timeTIME[(p)]00:00:00.0000000 to 23:59:59.9999999TIMETIME(7) WITH TIME ZONETIME(p)
Date/timeTIMESTAMP[(fsp)]1970-01-01 00:00:01 to 2038-01-19 03:14:07.999999VARBINARY(8)BYTEAVARBINARY(8)
StringBINARY[(n)]n: 1–8,000VARBINARYBYTEA>255: BLOB; otherwise: BINARY(n)
StringVARBINARY[(n|max)]n: 1–8,000; max: up to 2^31-1 bytesVARBINARYBYTEAmax: LONGBLOB; otherwise: VARBINARY(n)
StringCHAR[(n)]n: 1–8,000 bytesVARCHARCHARACTER>255: VARCHAR; otherwise: CHAR
StringVARCHAR[(n|max)]n: 1–8,000; max: up to 2^31-1 bytes (2 GB)VARCHARCHARACTERmax: LONGTEXT; otherwise: VARCHAR(n)
StringNCHAR[(n)]n: 1–4,000 (2n bytes)VARCHARCHARACTER VARYINGVARCHAR(200)
StringNVARCHAR[(n|max)]n: 1–4,000; max: up to 2^30-1 characters (2 GB)VARCHARCHARACTER VARYINGmax: LONGTEXT; otherwise: VARCHAR(n)
StringNTEXTMax 2^30-1 bytesVARCHARTEXTLONGTEXT
StringTEXTMax 2^31-1 bytesVARCHARTEXTLONGTEXT
StringIMAGE0 to 2^31-1 bytesVARBINARYBYTEALONGBLOB
SpatialGEOGRAPHYVARCHARNot supportedBLOB
SpatialGEOMETRYVARCHARNot supportedBLOB
XMLXMLVARCHARXMLLONGTEXT
OtherUNIQUEIDENTIFIERVARCHARCHARACTER(36)CHAR(36)
OtherSQL_VARIANTNot supportedNot supportedVARCHAR(200)
OtherHIERARCHYIDNot supportedNot supportedVARCHAR(200)
OtherSYSNAMEVARCHARCHARACTER VARYING(128)VARCHAR(200)

Data synchronization from a Db2 for LUW source

When the source is a Db2 for LUW database, DTS maps data types to MySQL as shown below.

TypeDb2 for LUW data typeValue rangeMySQL data type
IntegerSMALLINT-32,768 to +32,767SMALLINT
IntegerINTEGER-2,147,483,648 to +2,147,483,647INT
IntegerBIGINT-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807BIGINT
DecimalDECIMAL(p,s)p ≤ 38DECIMAL
DecimalFLOAT(n)1–53; 1–24: single precision; 25–53: double precisionFLOAT
DecimalDECFLOAT(p)DECIMAL(65,10)
Date/timeDATE0001-01-01 to 9999-12-31DATE
Date/timeTIME00:00:00 to 24:00:00TIME
Date/timeTIMESTAMP(p)0001-01-01-00.00.00 to 9999-12-31-24.00.00; 0 ≤ p ≤ 12DATETIME
StringCHARACTER(n)254CHAR | VARCHAR
StringVARCHAR(n)32,672VARCHAR
StringCHARACTER(n) FOR BIT DATA254BLOB
StringCLOB2,147,483,647LONGTEXT
StringGRAPHIC(n)127CHAR(length*4)
StringVARGRAPHIC(n)16,336CHAR(length*4)
StringDBCLOB(n)1,073,741,823VARCHAR | LONGTEXT
StringBLOB2,147,483,647LONGBLOB
OtherXML2,147,483,647VARCHAR | LONGTEXT

Data synchronization from a Db2 for i source

When the source is a Db2 for i database, DTS maps data types to MySQL as shown below.

TypeDb2 for i data typeValue rangeMySQL data type
IntegerSMALLINT-32,768 to +32,767SMALLINT
IntegerINTEGER-2,147,483,648 to +2,147,483,647INT
IntegerBIGINT-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807BIGINT
DecimalDECIMAL(p,s)p ≤ 63DECIMAL
DecimalNUMERICDECIMAL
DecimalFLOAT(n)FLOAT
DecimalDECFLOAT(p)DECIMAL(65,10)
Date/timeDATE0001-01-01 to 9999-12-31DATE
Date/timeTIME00:00:00 to 24:00:00TIME
Date/timeTIMESTAMP(p)0001-01-01-00.00.00 to 9999-12-31-24.00.00; 0 ≤ p ≤ 12DATETIME
StringCHAR(n)32,765CHAR | VARCHAR
StringVARCHAR(n)32,739VARCHAR
StringCHAR(n) FOR BIT DATABLOB
StringCLOB2,147,483,647LONGTEXT
StringGRAPHIC(n)16,382CHAR
StringVARGRAPHIC(n)16,369VARCHAR
StringDBCLOB(n)1,073,741,823LONGTEXT
StringBINARY32,765BINARY
StringVARBIN32,739VARBINARY
StringBLOB2,147,483,647LONGBLOB
OtherDATALINKVARCHAR | LONGTEXT
OtherROWID40VARCHAR | LONGTEXT
OtherXML2,147,483,647VARCHAR | LONGTEXT

Data synchronization from a TiDB source

When the source is a self-managed TiDB database and the destination is AnalyticDB for MySQL 3.0, DTS converts TiDB types to MySQL-compatible types as shown below.

TiDB data typeMySQL data type
BIGINTBIGINT
BIGINT UNSIGNEDDECIMAL(20,0)
BINARYBINARY
BITBIT
BOOL / BOOLEANTINYINT
CHARCHAR
DATEDATE
DATETIMEDATETIME
DECIMALDECIMAL
DOUBLEDOUBLE
ENUMENUM
FLOATFLOAT
INTINT
INT UNSIGNEDBIGINT
INTEGERINTEGER
JSONJSON
MEDIUMBLOB / LONGBLOB / TINYBLOB / BLOBMEDIUMBLOB / LONGBLOB / TINYBLOB / BLOB
MEDIUMINTMEDIUMINT
SETSET
SMALLINTSMALLINT
SMALLINT UNSIGNEDINT
TEXT / LONGTEXTTEXT / LONGTEXT
TIMETIME
TIMESTAMPTIMESTAMP
TINYINTTINYINT
TINYINT UNSIGNEDSMALLINT
VARBINARYVARBINARY
VARCHARVARCHAR
YEARYEAR