Supported Oracle data types

When you use Oracle as a source connection, you can replicate only some data types.

When you use the Oracle connection with the Copy goal, Data Replication will attempt to create or replicate to a column in the target database with a similar column name and compatible data type. If the data type of the target column is not compatible, it will convert the target data type to a string-based data type (for example, varchar).

You can use the unsupported_type_action parameter to choose how to handle replicating tables that contain columns with unsupported datatypes. Set the unsupported_type_action parameter to one of the following values:

  • filter_object: Source tables containing unsupported fields or columns are not replicated to the target database.

  • filter_field : Unsupported fields or columns in source tables are filtered out and not replicated to the target database.

The following table shows the Oracle data types that you can replicate:

Data type Supported Description
VARCHAR2(size [BYTE \ CHAR]) Variable-length character string having maximum length size bytes or characters.
NVARCHAR2(size) Variable-length Unicode character string having maximum length size characters.
NUMBER [ (p [, s]) ] Number having precision p and scale s.
FLOAT [(p)] A subtype of the NUMBER data type having precision p. A FLOAT value is represented internally as NUMBER.
LONG Character data of variable length up to 2 gigabytes, or 2³¹-1 bytes.
DATE Valid date range from January 1, 4712 BC, to December 31, 9999 AD. Format is determined by NLS_DATE_FORMAT or NLS_TERRITORY. Includes YEAR, MONTH, DAY, HOUR, MINUTE, and SECOND. No fractional seconds or time zone.
BINARY_FLOAT 32-bit floating point number.
BINARY_DOUBLE 64-bit floating point number.
TIMESTAMP [(fractional_seconds_precision)] Includes YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, and fractional seconds. No time zone.
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE Includes all TIMESTAMP fields plus TIMEZONE_HOUR and TIMEZONE_MINUTE. Has fractional seconds and explicit time zone.
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE All values of TIMESTAMP WITH TIME ZONE, with exceptions.
INTERVAL YEAR [(year_precision)] TO MONTH Stores a period of time in years and months. year_precision is the number of digits in the YEAR field.
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] Stores a period of time in days, hours, minutes, and seconds. day_precision is the max digits in the DAY field.
RAW(size) Raw binary data of length size bytes.
LONG RAW Raw binary data of variable length up to 2 gigabytes.
ROWID Base 64 string representing the unique address of a row in its table. Used for values returned by the ROWID pseudocolumn.
UROWID [(size)] Base 64 string representing the logical address of a row in an index-organized table. Optional size defines column size.
CHAR [(size [BYTE \ CHAR])] Fixed-length character data of length size bytes or characters. Max size is 2000 bytes or characters.
NCHAR[(size)] Fixed-length character data of length size characters. Byte size varies by encoding: up to 2×size for AL16UTF16, 3×size for UTF8.
CLOB Character large object containing single-byte or multibyte characters.
NCLOB Character large object containing Unicode characters.
BLOB Binary large object.
BFILE Locator to a large binary file stored outside the database. Enables byte stream I/O access to external LOBs. Max size is 4 GB.
JSON Maximum size is 32 megabytes.