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.
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 ( |
Connection URL | String |
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 | |
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. |
JAAS Configuration | String | If you Enable Kerberos authentication, use this property to configure it. To authenticate using Kerberos, specify For example, You must also append the appropriate application name from the specified ' | |
Password | encrypted password | the password specified for the username (see Encrypted passwords) | |
Postgres Config | String | {"ReplicationPluginConfig": {"Name": "WAL2JSON", "Format": "1"}} | Change In Striim 4.1.2.1 or later, change 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. | |
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 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):
For example, The 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 ( |
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.