Skip to main content

YugabyteDB continuous real-time replication using CDC

Yugabyte Reader uses the wal2json plugin to read change data. 1.x releases of wal2jon can not read transactions larger than 1 GB. If you have transactions that large, we recommend using a 2.x release of wal2json, which does not have that limitation. When you use a 2.x release, we recommend setting the Yugabyte Config property to automatically use format 2 for transactions larger than 1GB and format 1 for other transactions (see Yugabyte Reader properties).

Striim provides wizards for creating applications that read from YugabyteDB and write to various targets. See Creating an application using a wizard for details.

If not using an automatic pipeline wizard, before creating the continuous real-time replication application, see Switching from initial load to continuous replication of YugabyteDB sources.

Configuring YugabyteDB to use Yugabyte Reader

Striim reads change data from YugabyteDB.

Yugabyte Reader requires logical replication. For general information about logical replication, see YugabyteDB / Explore / Change data capture / PostgreSQL protocol / Key concepts / PostgreSQL logical replication concepts. To capture CDC changes, enter the following in a YugabyteDB client to create a replication slot:

SELECT pg_create_logical_replication_slot('SLOT_NAME', 'wal2json');

Enter the following command to create a role (user) for use by Striim, replacing ****** with a strong password:

CREATE ROLE striim WITH LOGIN PASSWORD '******' REPLICATION;

Yugabyte setup for schema evolution

Using Schema evolution with Yugabyte Reader requires a tracking table in the source database. To create this table, run the following commands in a YugabyteDB client:

CREATE SCHEMA IF NOT EXISTS striim;
CREATE TABLE IF NOT EXISTS striim.ddlcapturetable
  (
    event           TEXT,
    tag             TEXT,
    classid         OID,
    objid           OID,
    objsubid        INT,
    object_type     TEXT,
    schema_name     TEXT,
    object_identity TEXT,
    is_extension    BOOL,
    query           TEXT,
    username        TEXT DEFAULT CURRENT_USER,
    db_name TEXT DEFAULT Current_database(),
    client_addr     INET DEFAULT Inet_client_addr(),
    creation_time   TIMESTAMP DEFAULT now(),
    id SERIAL PRIMARY KEY
  ); 
GRANT USAGE ON SCHEMA striim TO PUBLIC;
GRANT SELECT, INSERT ON TABLE striim.ddlcapturetable TO PUBLIC;

Yugabyte programmer's reference

Yugabyte Reader properties

Before you can use this adapter, Yugabyte must be configured as described in Configuring YugabyteDB to use Yugabyte Reader.

If this reader will be deployed to a Forwarding Agent, install the driver as described in Install the PostgreSQL JDBC driver in a Forwarding Agent.

Striim provides wizards for creating applications that read from YugabyteDB and write to various targets. See Creating an application using a wizard for details.

property

type

default value

notes

Bidirectional Marker Table

String

Not supported in this release.

CDDL Action

enum

Process

Appears in Flow Designer only when CDDL Capture is True. See Handling schema evolution.

CDDL Capture

Boolean

False

See Handling schema evolution.

Do not use Find and Replace DDL unless instructed to by Striim support.

CDDL Tracking Table

String

Appears in Flow Designer only when CDDL Capture is True.

Connection Retry Policy

String

retryInterval=30, maxRetries=3

With the default setting, if a connection attempt is unsuccessful, the adapter will try again in 30 seconds (retryInterval. If the second attempt is unsuccessful, in 30 seconds it will try a third time (maxRetries). If that is unsuccessful, the adapter will fail and log an exception. Negative values are not supported.

Connection URL

String

jdbc:postgresql:// followed by the primary server's IP address or network name, a colon, the port number, and a slash followed by the database name. If the database name is omitted, the Username value is used as the database name.

When connecting through an SSH tunnel (see Using an SSH tunnel to connect to a source or target), specify the IP address of the tunnel.

Yugabyte Reader cannot read from a replica (standby) server since the replication slot is in the primary server.

Excluded Tables

String

Data for any tables specified here will not be returned. For example, if Tables uses a wildcard, data from any tables specified here will be omitted. Multiple table names (separated by semicolons) and wildcards may be used exactly as for Tables.

Filter Transaction Boundaries

Boolean

True

With the default value of True, begin and commit transactions are filtered out. Set to False to include begin and commit transactions.

Password

encrypted password

the password specified for the username (see Encrypted passwords)

Replication Slot Name

String

striim_slot

The name of the replication slot created as described in Configuring YugabyteDB to use Yugabyte Reader. If you have multiple instances of Yugabyte Reader, each must have its own slot.

Start LSN

String

By default, only new transactions are read. Optionally, specify a log sequence number to start reading from that point.

If you are using schema evolution (see Handling schema evolution, set a Start LSN only if you are sure that there have been no DDL changes after that point.Handling schema evolution

Tables

String

The table(s) for which to return change data. Tables must have primary keys or REPLICA IDENTITY set to FULL (required for logical replication).

Names are case-sensitive. Specify source table names as <schema>.<table>) (The database is specified in the connection URL.)

Do not modify this property when CDDL Capture is True or recovery is enabled for the application.

You may specify multiple tables as a list separated by semicolons or using the following wildcards in the schema and/or table names only (not in the database name):

  • %: any series of characters

  • _: any single character

For example, %.% would include all tables in all schemas in the database specified in the connection URL.

The % wildcard is allowed only at the end of the string. For example, mydb.prefix% is valid, but mydb.%suffix is not.

All tables specified must have primary keys. Tables without primary keys are not included in output.

Known issue DEV-27752: this adapter can not read partitioned tables. See wal2json issue #259.

If any specified tables are missing Striim will issue a warning. If none of the specified tables exists, start will fail with a "found no tables" error.

If you have multiple instances of Yugabyte Reader, each should read a separate set of tables.

Username

String

the login name for the user created as described in Configuring YugabyteDB to use Yugabyte Reader

Yugabyte Config

String

{"ReplicationPluginConfig": {"Name": "WAL2JSON", "Format": "1"}}

Change 1 to 2 to use wal2json format 2 (see the wal2json readme for more information).

Target data type support & mapping for YugabyteDB sources

The table below details how Striim maps the data types of a YugabyteDB source to the data types of a target such as Azure Synapse, BigQuery, Databricks, and so on when you create an application using a wizard with Auto Schema Creation, perform an initial load using Database Reader with Create Schema enabled, or run the schema conversion utility, or when Striim schema evolution creates or alters target tables.

See Data Types for a list of supported data type aliases (such as decimal and varchar).

For fixed-length data types, Striim interprets the length parameter as one character = one byte, which can result in errors if the data uses multi-byte characters. To avoid this issue, manually increase the size of the data type in the target, or change the target data type to blob or clob.

If your screen is not wide enough to display the whole table, click in a cell and drag left to view the right-hand columns.

Yugabyte Data Type

Azure Synapse

BigQuery

Databricks

Db2 for z/OS

Fabric Mirror

Iceberg

MariaDB

Microsoft Fabric

MySQL

Oracle

PostgreSQL

Snowflake

Spanner

Spanner PG Dialect

SQL Server

Vertica

Yellowbrick

BIGSERIAL

bigint

int64

bigint

bigint

long

long

bigint

bigint

bigint

int

bigserial

integer

INT64

int

bigint

integer

bigint

BIT

BIT

bytes(p)

binary

binary(255)

bytes

binary

bit(p)

BIT

bit(p)

BLOB

bit

BINARY

STRING(p)

bytea

BIT

binary(p)

character varying(p)

BIT(p)

varchar(p), if 1 <= (p) <= 8000

varchar(8000), if (p) > 8000*

bytes, if (p) > 9223372036854775807*

bytes(p), if (p) <= 9223372036854775807

binary

binary(255), if (p) <= 127

bytes

binary

binary(255), if (p) > 64

bit(p), if (p) <= 64

varchar(max), if (p) > 8000*

varchar(p), if 1 <= (p) <= 8000

binary(255), if (p) > 64

bit(p), if (p) <= 64

BLOB

bit varying(p), if 1 <= (p) <= 2147483647

BINARY, if (p) <= 8388608

BINARY, if (p) > 8388608*

STRING(p), if (p) <= 2621440

bytea, if (p) <= 1048576

bytea, if (p) > 1048576*

varchar(max), if (p) > 8000*

varchar(p), if 1 <= (p) <= 8000

binary(p), if (p) <= 65000

character varying(p), if (p) <= 64000

BOOL

BIT

boolean

boolean

Not supported

boolean

boolean

bool

BIT

bool

CHAR(5)

boolean

BOOLEAN

BOOL

boolean

BIT

boolean

boolean

BOX

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

BPCHAR

character(p)

string

string

character(p)

string

char(p)

character(p)

varchar(p)

character(p)

character(p)

bpchar(p)

character(p)

STRING(p)

varchar(p)

character(p)

character(p)

bpchar(p)

BPCHAR(p)

character(p), if (p) <= 8000

varchar(8000), if (p) > 8000*

string

string

character(p), if (p) <= 255

clob(p), if 255 <= (p) <= 2147483647

string

string, if (p) > 2147483647

char(p), if (p) <= 2147483647

character(p), if (p) <= 255

longtext, if 255 <= (p) <= 2147483647

varchar(max), if (p) > 8000*

varchar(p), if (p) <= 8000

character(p), if (p) <= 255

longtext, if 255 <= (p) <= 2147483647

clob, if (p) > 2000*

character(p), if (p) <= 2000

bpchar(p), if (p) <= 10485760

bpchar, if (p) > 10485760*

character(16777216), if (p) > 16777216*

character(p), if (p) <= 16777216

STRING(p), if (p) <= 2621440

varchar(p), if (p) <= 1048576

text, if (p) > 1048576*

character(p), if (p) <= 8000

varchar(max), if (p) > 8000*

character(p), if (p) <= 65000

long varchar(p), if 65000 <= (p) <= 32000000*

bpchar(p), if (p) <= 64000

bpchar, if (p) > 64000*

BYTEA

varbinary(8000)

bytes(p)

binary

blob(p)

bytes

binary

longblob

varbinary(max)

longblob

BLOB

bytea

BINARY

BYTES(MAX)

Not supported

varbinary(max)

Not supported

Not supported

CIDR

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

cidr

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

CIRCLE

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

circle

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

DATE

date

date

date

date

date

date

date

date

date

date

date

date

DATE

date

date

date

date

DATERANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

FLOAT4

float(p)

float64

float

double

float

float

float(p)

float(p)

float(p)

float(p)

real

float

FLOAT64

float4

float(p)

float(p)

real

FLOAT8

float(p)

float64

float

double

double

double

float(p)

float(p)

float(p)

float(p)

real

float

FLOAT64

float4

float(p)

float(p)

real

INET

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

inet

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

INT2

smallint

int64

smallint

smallint

int

short

smallint

smallint

smallint

int

smallint

integer

INT64

int

smallint

integer

smallint

INT4

integer

int64

integer

integer

int

integer

integer

int

integer

int

integer

integer

INT64

int

integer

integer

integer

INT4RANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

INT8

bigint

int64

bigint

bigint

long

long

bigint

bigint

bigint

int

bigint

integer

INT64

int

bigint

integer

bigint

INT8RANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

INTERVAL

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

interval

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

INTERVAL(p)

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

interval, if (p) <= 49, if (s) <= 6

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

JSON

varchar(8000)

string

string

clob

string

string

json

varchar(max)

json

clob

json

VARIANT

STRING(MAX)

jsonb

varchar(max)

long varchar(10000000)

character varying

JSONB

varchar(8000)

string

string

clob

string

string

json

varchar(max)

json

clob

jsonb

VARIANT

STRING(MAX)

jsonb

varchar(max)

long varchar(10000000)

character varying

LINE

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

line

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

LSEG

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

lseg

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

MACADDR

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

macaddr

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

macaddr

MONEY

numeric(38)

string

string

varchar(150)

string

string

varchar(150)

decimal(38,4)

varchar(150)

VARCHAR2(150)

numeric

varchar(150)

STRING(150)

varchar(150)

numeric(38)

varchar(10000)

character varying(150)

NUMERIC

numeric(38)

bignumeric

decimal(38)

numeric(31)

string

decimal

decimal(65)

decimal(38)

decimal(65)

number

numeric

numeric

NUMERIC

numeric

numeric(38)

numeric

decimal

NUMERIC(p,0)

numeric(p,s), if (p) <= 38, if (s) <= 38

numeric, if (p) <= 29, if (s) <= 9

decimal(p,s), if (p) <= 38, if (s) <= 37

numeric(p,s), if (p) <= 31, if (s) <= 30

decimal, if (p) <= 38

decimal(p,s), if (p) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

decimal(p,s), if (p) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

number(p,s), if (p) <= 38, if (s) <= 127

numeric(p,s), if (p) <= 1000, if (s) <= 1000

numeric(p,s), if (p) <= 38, if (s) <= 37

NUMERIC, if (p) <= 38, if (s) <= 9

numeric, if (p) <= 131072, if (s) <= 16384

numeric(p,s), if (p) <= 38, if (s) <= 38

numeric(p,s), if (p) <= 1024, if (s) <= 1024

decimal(p,s), if (p) <= 38, if (s) <= 38

NUMERIC(p,s)

varchar(8000), if (p,s) > 38, if (s) > 38*

numeric(p,s), if (p) <= 38, if (s) <= 38

string, if (p,s) > 39, if (s) > 38*

numeric, if (p) <= 29, if (s) <= 9

bignumeric, if 29 <= (p) <= 39, if 9 <= (s) <= 38

string, if (p,s) > 38, if (s) > 37*

decimal(p,s), if (p) <= 38, if (s) <= 37

numeric(p,s), if (p) <= 31, if (s) <= 30

varchar(1000), if (p,s) > 31, if (s) > 30*

string, if (p,s) > 38*

decimal, if (p) <= 38

decimal(p,s), if (p) <= 38, if (s) <= 38

string, if (p,s) > 38, if (s) > 38*

decimal(p,s), if (p) <= 65, if (s) <= 30

TEXT, if (p,s) > 65, if (s) > 30*

varchar(max), if (p,s) > 38, if (s) > 38*

decimal(p,s), if (p) <= 38, if (s) <= 38

decimal(p,s), if (p) <= 65, if (s) <= 30

TEXT, if (p,s) > 65, if (s) > 30*

number, if (p,s) > 38, if (s) > 127*

number(p,s), if (p) <= 38, if (s) <= 127

double precision, if (s) > 1000

double precision, if (p,s) > 1000

numeric(p,s), if (p) <= 1000, if (s) <= 1000

numeric(p,s), if (p) <= 38, if (s) <= 37

VARCHAR, if (p,s) > 38, if (s) > 37*

NUMERIC, if (p) <= 38, if (s) <= 9

STRING(MAX), if (p,s) > 308, if (s) > 15*

numeric, if (p) <= 131072, if (s) <= 16384

varchar(8000), if (p,s) > 38, if (s) > 38*

numeric(p,s), if (p) <= 38, if (s) <= 38

numeric(p,s), if (p) <= 1024, if (s) <= 1024

character varying, if (p,s) > 38, if (s) > 38*

decimal(p,s), if (p) <= 38, if (s) <= 38

NUMRANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

PATH

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

path

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

POINT

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

POLYGON

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

SERIAL

integer

int64

bigint

integer

int

integer

integer

int

integer

int

serial

integer

INT64

int

integer

integer

integer

SMALLSERIAL

smallint

int64

bigint

smallint

int

short

smallint

smallint

smallint

int

smallserial

integer

INT64

int

smallint

integer

smallint

TEXT

varchar(8000)

string

string

clob(p)

string

string

LONGTEXT

varchar(max)

LONGTEXT

clob

text

VARCHAR

STRING(MAX)

Not supported

varchar(max)

Not supported

character varying

TIME

time

time

string

time

time-millis

string

time(s)

time(6)

time(s)

VARCHAR2(150)

time(s)

time

STRING(150)

varchar(150)

time

time(s)

time

TIME(p)

time

string, if (s) > 6*

time, if (s) <= 6

string

time

time-millis

string

varchar(150), if (s) > 6*

time(s), if (s) <= 6

time(6), if (s) <= 6

varchar(150), if (s) > 6*

varchar(150), if (s) > 6*

time(s), if (s) <= 6

VARCHAR2(150)

time(s), if (p) <= 15, if (s) <= 6

time, if (p) > 15*

time, if (s) > 6*

time

STRING(150)

varchar(150)

time

time(s), if (p) <= 15, if (s) <= 6

time, if (p) > 15*

time, if (s) > 6*

time

TIMESTAMP

datetime2

timestamp

timestamp

timestamp

timestamp-millis

timestamp_ntz

datetime(s)

datetime2(6)

datetime(s)

timestamp(s)

timestamp(s) without time zone

timestamp

TIMESTAMP

timestamptz

datetime2

timestamp(s)

timestamp

TIMESTAMP(p)

datetime2

timestamp, if (s) <= 6

timestamp, if (s) > 6*

timestamp

timestamp

timestamp-millis

timestamp_ntz

varchar(34), if (s) > 6*

datetime(s), if (s) <= 6

varchar(150), if (s) > 6*

datetime2(6), if (s) <= 6

varchar(34), if (s) > 6*

datetime(s), if (s) <= 6

timestamp(s), if (s) <= 9

timestamp, if (s) > 9*

timestamp without time zone, if (s) > 6*

timestamp without time zone, if 29 <= (p) <= 29*

timestamp(s) without time zone, if (p) <= 29, if (s) <= 6

timestamp

TIMESTAMP

timestamptz, if 36 <= (p) <= 36*

timestamptz, if (s) > 6*

timestamptz, if (p) <= 36, if (s) <= 6

datetime2

timestamp, if (s) > 6*

timestamp, if (p) > 29*

timestamp(s), if (p) <= 29, if (s) <= 6

timestamp

TIMESTAMPTZ

datetimeoffset

timestamp

timestamp

timestamp with time zone

string

timestamp

timestamp

datetime2(6)

timestamp

timestamp with time zone

timestamp(s) with time zone

timestamp with time zone

TIMESTAMP

timestamptz

datetimeoffset

timestamp(s) with time zone

timestamptz

TIMESTAMPTZ(p)

datetimeoffset

timestamp, if (s) <= 6

timestamp, if (s) > 6*

timestamp

timestamp with time zone

string

timestamp

timestamp

varchar(150), if (s) > 6*

datetime2(6), if (s) <= 6

timestamp

timestamp with time zone

timestamp(s) with time zone, if (p) <= 35, if (s) <= 6

timestamp with time zone, if (s) > 6*

timestamp with time zone, if 35 <= (p) <= 35*

timestamp with time zone

TIMESTAMP

timestamptz, if 36 <= (p) <= 36*

timestamptz, if (s) > 6*

timestamptz, if (p) <= 36, if (s) <= 6

datetimeoffset

timestamp(s) with time zone, if (p) <= 35, if (s) <= 6

timestamp with time zone, if (s) > 6*

timestamp with time zone, if (p) > 35*

timestamptz

TIMETZ

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

time(s) with time zone

VARCHAR(150)

STRING(150)

varchar(150)

varchar(150)

time(s) with time zone

character varying(150)

TIMETZ(p)

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

time(s) with time zone, if (p) <= 21, if (s) <= 6

VARCHAR(150)

STRING(150)

varchar(150)

varchar(150)

time with time zone, if (s) > 6*

time with time zone, if (p) > 21*

time(s) with time zone, if (p) <= 21, if (s) <= 6

character varying(150)

TSQUERY

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

TSRANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

TSTZRANGE

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

TSVECTOR

varchar(8000)

string

string

varchar(250)

string

string

text

varchar(max)

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

varchar

character varying

TXID_SNAPSHOT

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

txid_snapshot

varchar(150)

STRING(150)

varchar(150)

varchar(150)

varchar(150)

character varying(150)

UUID

varchar(150)

string

string

varchar(150)

string

string

varchar(150)

varchar(150)

varchar(150)

VARCHAR2(150)

uuid

varchar(150)

STRING(150)

varchar(150)

varchar(150)

Not supported

Not supported

VARBIT

varbinary(8000)

bytes(p)

binary

blob

bytes

binary

binary(255)

varbinary(max)

binary(255)

BLOB

varbit

BINARY

BYTES(MAX)

bytea

varbinary(max)

Not supported

Not supported

VARBIT(p)

varbinary(8000), if (p) > 8000*

varbinary(p), if (p) <= 8000

bytes, if (p) > 9223372036854775807*

bytes(p), if (p) <= 9223372036854775807

binary

blob, if (p) > 1011*

varbinary(4046), if (p) <= 1011

bytes

binary

bit(64), if (p) <= 64

binary(255), if (p) > 64

varbinary(p), if (p) <= 8000

varbinary(max), if (p) > 8000*

bit(64), if (p) <= 64

binary(255), if (p) > 64

BLOB

varbit, if (p) > 83886080*

varbit(p), if (p) <= 83886080

BINARY, if (p) <= 8388608

BINARY, if (p) > 8388608*

BYTES(MAX), if (p) > 10485760*

BYTES(p), if (p) <= 10485760

bytea, if (p) <= 1048576

bytea, if (p) > 1048576

varbinary(p), if (p) <= 8000

varbinary(max), if (p) > 8000*

varbinary(p), if (p) <= 65000

long varbinary(p), if 65000 <= (p) <= 32000000*

character varying(p), if (p) <= 64000

VARCHAR

varchar(p)

varchar(8000)

string

string

clob(p)

varchar(p)

string

varchar(p)

longtext

varchar(p)

varchar(p)

varchar(max)

longtext

varchar(p)

clob

VARCHAR2(p)

character varying(p)

VARCHAR(p)

STRING(p)

STRING(MAX)

text

varchar(p)

varchar(p)

varchar(max)

varchar(p)

character varying(p)

VARCHAR(p)

varchar(p), if (p) <= 8000

varchar(8000), if (p) > 8000*

string

string

varchar(p), if (p) <= 4045

clob(p), if 4045 <= (p) <= 2147483647

string

string, if (p) > 2147483647

varchar(p), if (p) <= 2147483647

varchar(p), if (p) <= 65535

longtext, if 65535 <= (p) <= 2147483647*

varchar(max), if (p) > 8000*

varchar(p), if (p) <= 8000

varchar(p), if (p) <= 65535

longtext, if 65535 <= (p) <= 2147483647*

clob, if (p) > 4000*

VARCHAR2(p), if (p) <= 4000

character varying(p), if (p) <= 10485760

character varying, if (p) > 10485760*

VARCHAR, if (p) > 16777216*

VARCHAR(p), if (p) <= 16777216

STRING(MAX), if (p) > 2621440

STRING(p), if (p) <= 2621440

varchar(p), if (p) <= 1048576

text, if (p) > 1048576*

varchar(max), if (p) > 8000*

varchar(p), if (p) <= 8000

varchar(p), if (p) <= 65000

long varchar(p), if 65000 <= (p) <= 32000000*

character varying, if (p) > 64000*

character varying(p), if (p) <= 64000

XML

varchar(8000)

string

string

xml

string

string

LONGTEXT

varchar(max)

LONGTEXT

xmltype

xml

varchar

STRING(MAX)

varchar(p)

xml

long varchar(10000000)

character varying

*When using the schema conversion utility, these mappings appear in converted_tables_with_striim_intelligence.sql.