Target data type support & mapping for Snowflake sources
If a table contains a column of a geospatial type (GEOGRAPHY or GEOMETRY), Snowflake Reader cannot capture UPDATE or DELETE operations. This is a limitation of Snowflake's Change Streams (see Guides > Data Loading > Streams > Introduction to Streams > Types of Streams and Compilation errors when select from a Stream : Invalid argument types for function 'EQUAL_NULL': (GEOMETRY, GEOMETRY).
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.
Snowflake Data Type | Azure Synapse | BigQuery | Databricks | Db2 for z/OS | MariaDB | Microsoft Fabric | MySQL | Oracle | PostgreSQL | Snowflake | Spanner | SQL Server | Yellowbrick |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ARRAY | varchar(8000) | string | string | varchar(250) | text | varchar(8000) | text | VARCHAR2(200) | character varying | VARCHAR | STRING(MAX) | varchar(8000) | character varying |
BINARY | binary | bytes(p) | binary | blob | Not supported | varbinary | Not supported | BLOB | bytea | BINARY | BYTES(p) | binary | character varying(40000) |
BINARY(p) | binary(p), if (p) <= 8000 binary, if (p) > 8000* | bytes, if (p) > 9223372036854775807* bytes(p), if (p) <= 9223372036854775807 | binary | binary(255), if (p) <= 127 blob, if (p) > 127* | binary(p), if (p) <= 255 | varbinary, if (p) > 8000* varbinary(p), if (p) <= 8000 | binary(p), if (p) <= 255 | BLOB | bytea, if (p) <= 2147483647 | BINARY, if (p) <= 8388608 BINARY, if (p) > 8388608* | BYTES(MAX), if (p) > 10485760* BYTES(p), if (p) <= 10485760 | binary(p), if (p) <= 8000 binary, if (p) > 8000* | character varying(40000) |
BOOLEAN | BIT | boolean | boolean | Not supported | bool | BIT | bool | Not supported | boolean | BOOLEAN | BOOL | BIT | boolean |
DATE | date | date | date | date | date | date | date | date | date | date | DATE | date | date |
DOUBLE | float(53) | float64 | double | double | double | float(53) | double | double precision | double precision | double precision | FLOAT64 | float(53) | double precision |
GEOGRAPHY | varchar(8000) | string | string | varchar(250) | text | varchar(8000) | text | VARCHAR2(200) | character varying | VARCHAR | STRING(MAX) | varchar(8000) | character varying |
GEOMETRY | varchar(8000) | string | string | varchar(250) | text | varchar(8000) | text | VARCHAR2(200) | character varying | VARCHAR | STRING(MAX) | varchar(8000) | character varying |
NUMBER | numeric(p,s) | bignumeric | decimal(p,s) | numeric | decimal(p,s) | decimal(p,s) | decimal(p,s) | number(p,s) | numeric(p,s) | numeric(p,s) | NUMERIC | numeric(p,s) | decimal(p,s) |
NUMBER(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(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(p,s), if (p) <= 38, if (s) <= 38 | decimal(p,s), if (p) <= 38, if (s) <= 38 |
NUMBER(p,s) | varchar(8000), if (s) > 38* varchar(8000), if (p,s) > 38* numeric(p,s), if (p) <= 38, if (s) <= 38 | string, if (s) > 38* string, if (p,s) > 39* numeric, if (p) <= 29, if (s) <= 9 bignumeric, if 29 <= (p) <= 39, if 9 <= (s) <= 38 | string, if (p,s) > 38* decimal(p,s), if (p) <= 38, if (s) <= 37 string, if (s) > 37* | numeric(p,s), if (p) <= 31, if (s) <= 30 numeric, if (p,s) > 31, if (s) > 30* | TEXT, if (p,s) > 65, if (s) > 30* decimal(p,s), if (p) <= 65, if (s) <= 30 | varchar(8000), if (s) > 38* varchar(8000), if (p,s) > 38* decimal(p,s), if (p) <= 38, if (s) <= 38 | TEXT, if (p,s) > 65, if (s) > 30* decimal(p,s), if (p) <= 65, if (s) <= 30 | number, if (s) > 127* number, if (p,s) > 38* 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 | VARCHAR, if (s) > 37* numeric(p,s), if (p) <= 38, if (s) <= 37 VARCHAR, if (p,s) > 38* | STRING(MAX), if (p,s) > 308, if (s) > 15* NUMERIC, if (p) <= 38, if (s) <= 9 | varchar(8000), if (s) > 38* varchar(8000), if (p,s) > 38* numeric(p,s), if (p) <= 38, if (s) <= 38 | character varying, if (s) > 38* character varying, if (p,s) > 38* decimal(p,s), if (p) <= 38, if (s) <= 38 |
OBJECT | varchar(8000) | string | string | clob | json | varchar(8000) | json | clob | json | VARIANT | STRING(MAX) | varchar(max) | character varying |
TIME | time | time | string | time | time | time(6) | time | VARCHAR2(150) | time | time | STRING(150) | time | time |
TIME(p) | time | time | string | time | time | time(6) | time | VARCHAR2(150) | time | time | STRING(150) | time | time |
TIMESTAMPLTZ | datetime2 | timestamp | timestamp | timestamp | timestamp | datetime2 | timestamp | timestamp with local time zone | timestamp without time zone | timestamp | TIMESTAMP | datetime2 | timestamp |
TIMESTAMPLTZ(p) | datetime2 | timestamp | timestamp | timestamp | timestamp | datetime2 | timestamp | timestamp with local time zone | timestamp without time zone | timestamp | TIMESTAMP | datetime2 | timestamp |
TIMESTAMPNTZ | datetime2 | timestamp | timestamp | timestamp | datetime | datetime2(6) | datetime | timestamp | timestamp without time zone | timestamp | TIMESTAMP | datetime2 | timestamp |
TIMESTAMPNTZ(p) | datetime2 | timestamp | timestamp | timestamp | datetime | datetime2(6) | datetime | timestamp | timestamp without time zone | timestamp | TIMESTAMP | datetime2 | timestamp |
TIMESTAMPTZ | datetimeoffset | timestamp | timestamp | timestamp with time zone | timestamp | datetime2(6) | timestamp | timestamp with time zone | timestamp with time zone | timestamp with time zone | TIMESTAMP | datetimeoffset | timestamptz |
TIMESTAMPTZ(p) | datetimeoffset | timestamp | timestamp | timestamp with time zone | timestamp | datetime2(6) | timestamp | timestamp with time zone | timestamp with time zone | timestamp with time zone | TIMESTAMP | datetimeoffset | timestamptz |
VARCHAR | varchar(p) varchar(8000) | string | string | clob(p) varchar(p) | longtext varchar(p) | varchar(p) varchar(8000) | longtext varchar(p) | clob VARCHAR2(p) | character varying(p) | VARCHAR(p) | STRING(p) STRING(MAX) | 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 | longtext, if (p) > 2147483647* longtext, if 65535 <= (p) <= 2147483647 varchar(p), if (p) <= 65535 | varchar(p), if (p) <= 8000 varchar(8000), if (p) > 8000* | longtext, if (p) > 2147483647* longtext, if 65535 <= (p) <= 2147483647 varchar(p), if (p) <= 65535 | 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(max), if (p) > 8000* varchar(p), if (p) <= 8000 | character varying, if (p) > 64000* character varying(p), if (p) <= 64000 |
VARIANT | varchar(8000) | string | string | clob | LONGTEXT | varchar(8000) | LONGTEXT | clob | text | VARCHAR | STRING(MAX) | varchar(max) | character varying |
*When using the schema conversion utility, these mappings appear in converted_tables_with_striim_intelligence.sql.