Skip to main content

PostgreSQL programmer's reference

PostgreSQL Reader properties

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

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

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

property

type

default value

notes

Bidirectional Marker Table

String

When performing bidirectional replication, the fully qualified name of the marker table (see Bidirectional replication). This setting is case-sensitive.

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. See PostgreSQL setup for schema evolution.

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.

PostgreSQL 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)

Postgres Config

String

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

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

If you are running an older version of Amazon RDS for PostgreSQL that supports only version 1, you may contact AWS technical support to have the wal2json plugin updated.

Replication Slot Name

String

striim_slot

The name of the replication slot created as described in Configuring PostgreSQL to use PostgreSQL Reader. If you have multiple instances of PostgreSQLReader, 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 PostgreSQLReader, each should read a separate set of tables.

Username

String

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

PostgreSQL Reader WAEvent fields

The output data type for PostgreSQLReader is WAEvent. The elements are:

metadata: a map including:

  • LSN: log sequence number of the transaction's commit

  • NEXT_LSN: next log sequence number (used for reconnecting to the replication slot after a non-fatal network interruption)

  • OperationName: INSERT, UPDATE, or DELETE

    When schema evolution is enabled, OperationName for DDL events will be Alter, AlterColumns, Create, or Drop. This metadata is reserved for internal use by Striim and subject to change, so should not be used in CQs, open processors, or custom Java functions.

  • PK_UPDATE: included only when an UPDATE changes the primary key

  • Sequence: incremented for each operation within a transaction

  • TableName: the name of the table including its schema

  • Timestamp: timestamp from the replication subscription

  • TxnID: transaction identifier

To retrieve the values for these fields, use the META() function. See Parsing the fields of WAEvent for CDC readers.

data: an array of fields, numbered from 0, containing:

  • for an INSERT operation, the values that were inserted

  • for an UPDATE, the values after the operation was completed

  • for a DELETE, the value of the primary key and nulls for the other fields

To retrieve the values for these fields, use SELECT ... (DATA[]). See Parsing the fields of WAEvent for CDC readers.

before: for UPDATE operations, contains the primary key value from before the update. When an update changes the primary key value, you may retrieve the previous value using the BEFORE() function.

dataPresenceBitMap, beforePresenceBitMap, and typeUUID are reserved and should be ignored.

PostgreSQL Reader simple application

The following application will write change data for all tables in all schemas in database mydb to SysOut. Replace striim and ****** with the user name and password for the PostgreSQL account you created for use by PostgreSQLReader (see Configuring PostgreSQL to use PostgreSQL Reader) and mydb and %.% with the names of the database and tables to be read. If the replication slot name is not striim_slot, specify it using the ReplicationSlotName property.

CREATE APPLICATION PostgreSQLTest;

CREATE SOURCE PostgreSQLCDCIn USING PostgreSQLReader (
  Username:'striim',
  Password:'******',
  ConnectionURL:'jdbc:postgresql://192.0.2.10:5432/mydb',
  ReplicationSlotName: 'striim_slot',
  Tables:'%.%'
) 
OUTPUT TO PostgreSQLCDCStream;

CREATE TARGET PostgreSQLCDCOut
USING SysOut(name:PostgreSQLCDC)
INPUT FROM PostgreSQLCDCStream;

END APPLICATION PostgreSQLTest;

PostgreSQL Reader example output

PostgreSQLReader's output type is WAEvent. See WAEvent contents for change data and PostgreSQL Reader WAEvent fields for more information.

The following are examples of WAEvents emitted by PostgreSQLReader for various operation types. They all use the following table:

CREATE TABLE posauthorizations (
  business_name varchar(30),
  merchant_id character varying(35) PRIMARY KEY,
  primary_account bigint,
  pos bigint,
  code character varying(20),
  exp character(4),
  currency_code character(3),
  auth_amount numeric(10,3),
  terminal_id bigint,
  zip bigint,
  city character varying(20));
INSERT

If you performed the following INSERT on the table:

INSERT INTO posauthorizations VALUES(
  'COMPANY 1',
  'D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu',
  6705362103919221351,
  0,
  '20130309113025',
  '0916',
  'USD',
  2.20,
  5150279519809946,
  41363,
  'Quicksand');

The WAEvent for that INSERT would be similar to:

data: ["COMPANY 1","D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu",6705362103919221351,0,"20130309113025",
"0916","USD",2.200,5150279519809946,41363,"Quicksand"]
metadata: {"TableName":"public.posauthorizations","TxnID":556,"OperationName":"INSERT",
"LSN":"0/152CD58","NEXT_LSN":"0/152D1C8","Sequence":1,"Timestamp":"2019-01-11 16:29:54.628403-08"}
UPDATE

If you performed the following UPDATE on the table:

UPDATE posauthorizations SET BUSINESS_NAME = 'COMPANY 5A' where pos=0;

The WAEvent for that UPDATE would be similar to:

data: ["COMPANY 5A","D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu",6705362103919221351,0,"20130309113025",
"0916","USD",2.200,5150279519809946,41363,"Quicksand"]
metadata: {"TableName":"public.posauthorizations","TxnID":557,"OperationName":"UPDATE",
"LSN":"0/152D2E0","NEXT_LSN":"0/152D6F8","Sequence":1,"Timestamp":"2019-01-11 16:31:54.271525-08"}
before: [null,"D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu",null,null,null,null,null,null,null,null,null]

When an UPDATE changes the primary key, you may retrieve the old primary key value from the before array.

DELETE

If you performed the following DELETE on the table:

DELETE from posauthorizations where pos=0;

The WAEvent for that DELETE would be similar to:

data: [null,"D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu",null,null,null,null,null,null,null,null,null]
metadata: {"TableName":"public.posauthorizations","TxnID":558,"OperationName":"DELETE",
"LSN":"0/152D730","NEXT_LSN":"0/152D7C8","Sequence":1,"Timestamp":"2019-01-11 16:33:09.065951-08"}

Only the primary key value is included.

PostgreSQL Reader data type support and correspondence

Data types created using CREATE TYPE are not supported.

PostgreSQL type

Striim type

bigint

long

bigserial

long

bit

string

bit varying

string

boolean

short

bytea

string

character

string

character varying

string

cidr

string

circle

unsupported

composite type

string

date

DateTime

daterange

string

double precision

double

inet

string

integer

integer

int2

short

int4

integer

int4range

string

int8

long

int8range

string

integer

integer

interval

string

json

string

jsonb

string

line

unsupported

lseg

unsupported

macaddr

string

macaddr8

string

money

string

name (system identifier)

string

numeric

string (Infinity, -Infinity, and NaN values will be converted to null)

numrange

string

path

unsupported

pg_lan

string

point

unsupported

polygon

unsupported

real

float

smallint

short

smallserial

short

serial

integer

text

string

time

string

time with time zone

string

timestamp

datetime

tsrange

string

timestamp with time zone

datetime

tstzrange

string

tsquery

unsupported

tsvector

unsupported

txid_snapshot

string

uuid

string

xml

string

Target data type support & mapping for PostgreSQL sources

The table below details how Striim maps the data types of a PostgreSQL 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).

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.

PostgreSQL data types created using CREATE TYPE are not supported.

PostgreSQL Data Type

Azure Synapse

BigQuery

Databricks

Db2 for z/OS

Fabric Mirror

MariaDB

MySQL

Oracle

PostgreSQL

Snowflake

Spanner

Spanner PG Dialect

SQL Server

Yellowbrick

BIGSERIAL

bigint

int64

bigint

bigint

long

bigint

bigint

int

bigserial

integer

INT64

int

bigint

bigint

BIT

BIT

bytes(p)

binary

binary(255)

bytes

bit(p)

bit(p)

BLOB

bit

BINARY

STRING(p)

bytea

BIT

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(255), if (p) > 64

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

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

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

BOOL

BIT

boolean

boolean

Not supported

boolean

bool

bool

CHAR(5)

boolean

BOOLEAN

BOOL

boolean

BIT

boolean

BOX

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

BPCHAR

character(p)

string

string

character(p)

string

character(p)

character(p)

character(p)

bpchar(p)

character(p)

STRING(p)

varchar(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

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

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

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*

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

bpchar, if (p) > 64000*

BYTEA

varbinary(8000)

bytes(p)

binary

blob(p)

bytes

longblob

longblob

BLOB

bytea

BINARY

BYTES(MAX)

Not supported

varbinary(max)

Not supported

CIDR

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

cidr

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

CIRCLE

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

circle

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

DATE

date

date

date

date

date

date

date

date

date

date

DATE

date

date

date

DATERANGE

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

FLOAT4

float(p)

float64

float

real

float

float(p)

float(p)

float(p)

real

float

FLOAT64

float4

float(p)

real

FLOAT8

float(p)

float64

float

real

double

float(p)

float(p)

float(p)

double precision

float

FLOAT64

float4

float(p)

real

INET

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

inet

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

INT2

smallint

int64

bigint

smallint

int

smallint

smallint

int

smallint

integer

INT64

int

smallint

smallint

INT4

integer

int64

bigint

integer

int

integer

integer

int

integer

integer

INT64

int

integer

integer

INT4RANGE

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

INT8

bigint

int64

bigint

bigint

long

bigint

bigint

int

bigint

integer

INT64

int

bigint

bigint

INT8RANGE

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

INTERVAL

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

interval

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

INTERVAL(p)

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

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

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

JSON

varchar(8000)

string

string

clob

string

json

json

clob

json

VARIANT

STRING(MAX)

jsonb

varchar(max)

character varying

JSONB

varchar(8000)

string

string

clob

string

json

json

clob

jsonb

VARIANT

STRING(MAX)

jsonb

varchar(max)

character varying

LINE

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

line

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

LSEG

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

lseg

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

MACADDR

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

macaddr

varchar(150)

STRING(150)

varchar(150)

varchar(150)

macaddr

MONEY

numeric(38)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

numeric

varchar(150)

STRING(150)

varchar(150)

numeric(38)

character varying(150)

NUMERIC

numeric(38)

bignumeric

decimal(38)

numeric

string

decimal(65)

decimal(65)

number

numeric

numeric

NUMERIC

numeric

numeric(38)

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) <= 65, if (s) <= 30

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

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

numeric, if (p,s) > 31, if (s) > 30*

string, if (p,s) > 38*

decimal, if (p) <= 38

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

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

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

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

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

PATH

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

path

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

POINT

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

POLYGON

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

SERIAL

integer

int64

bigint

integer

int

integer

integer

int

serial

integer

INT64

int

integer

integer

SMALLSERIAL

smallint

int64

bigint

smallint

int

smallint

smallint

int

smallserial

integer

INT64

int

smallint

smallint

TEXT

varchar(8000)

string

string

clob(p)

string

LONGTEXT

LONGTEXT

clob

text

VARCHAR

STRING(MAX)

Not supported

varchar(max)

character varying

TIME

time

time

string

time

time-millis

time(s)

time(s)

VARCHAR2(150)

time(s)

time

STRING(150)

varchar(150)

time

time

TIME(p)

time

string, if (s) > 6*

time, if (s) <= 6

string

time

time-millis

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

time(s), 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

TIMESTAMP

datetime2

timestamp

timestamp

timestamp

timestamp-millis

datetime(s)

datetime(s)

timestamp(s)

timestamp(s) without time zone

timestamp

TIMESTAMP

timestamptz

datetime2

timestamp

TIMESTAMP(p)

datetime2

timestamp, if (s) <= 6

timestamp, if (s) > 6*

timestamp

timestamp

timestamp-millis

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

datetime(s), 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

TIMESTAMPTZ

datetimeoffset

timestamp

timestamp

timestamp with time zone

string

timestamp

timestamp

timestamp with time zone

timestamp(s) with time zone

timestamp with time zone

TIMESTAMP

timestamptz

datetimeoffset

timestamptz

TIMESTAMPTZ(p)

datetimeoffset

timestamp, if (s) <= 6

timestamp, if (s) > 6*

timestamp

timestamp with time zone

string

timestamp

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

timestamptz

TIMETZ

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

time(s) with time zone

VARCHAR(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

TIMETZ(p)

varchar(150)

string

string

varchar(150)

string

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)

character varying(150)

TSQUERY

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

TSRANGE

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

TSTZRANGE

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

TSVECTOR

varchar(8000)

string

string

varchar(250)

string

text

text

VARCHAR2(200)

character varying

VARCHAR

STRING(MAX)

text

varchar(8000)

character varying

TXID_SNAPSHOT

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

txid_snapshot

varchar(150)

STRING(150)

varchar(150)

varchar(150)

character varying(150)

UUID

varchar(150)

string

string

varchar(150)

string

varchar(150)

varchar(150)

VARCHAR2(150)

uuid

varchar(150)

STRING(150)

varchar(150)

varchar(150)

Not supported

VARBIT

varbinary(8000)

bytes(p)

binary

blob

bytes

binary(255)

binary(255)

BLOB

varbit

BINARY

BYTES(MAX)

bytea

varbinary(max)

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

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

binary(255), if (p) > 64

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*

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

VARCHAR

varchar(p)

varchar(8000)

string

string

clob(p)

varchar(p)

string

longtext

varchar(p)

longtext

varchar(p)

clob

VARCHAR2(p)

character varying(p)

VARCHAR(p)

STRING(p)

STRING(MAX)

text

varchar(p)

varchar(p)

varchar(max)

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

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

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

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

character varying, if (p) > 64000*

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

XML

varchar(8000)

string

string

xml

string

LONGTEXT

LONGTEXT

xmltype

xml

varchar

STRING(MAX)

varchar(p)

xml

character varying

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