Mapping
The following tables explain how SQL Server source datatypes are mapped to each target database. Wirekite extracts data from SQL Server, converts it to an internal type representation, then maps to the appropriate target type.Numeric Types
| SQL Server | PostgreSQL | MySQL | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
TINYINT | smallint | TINYINT UNSIGNED | NUMBER(38) | INTEGER | number | INT64 | INT64 | TINYINT UNSIGNED | SMALLINT |
SMALLINT | smallint | SMALLINT | NUMBER(38) | INTEGER | number | INT64 | INT64 | SMALLINT | SMALLINT |
INT | integer | INT | NUMBER(38) | INTEGER | int | INT64 | INT64 | INT | INT |
BIGINT | bigint | BIGINT | NUMBER(38) | BIGINT | bigint | INT64 | INT64 | BIGINT | BIGINT |
DECIMAL | decimal | DECIMAL | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | DECIMAL | DECIMAL |
NUMERIC | numeric | NUMERIC | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | NUMERIC | DECIMAL |
MONEY | numeric | NUMERIC | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | NUMERIC | DECIMAL |
SMALLMONEY | numeric | NUMERIC | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | NUMERIC | DECIMAL |
FLOAT | real or double precision | FLOAT or DOUBLE | BINARY_FLOAT or BINARY_DOUBLE | DOUBLE | float | FLOAT32 or FLOAT64 | FLOAT64 | FLOAT or DOUBLE | FLOAT or DOUBLE |
REAL | real | FLOAT | BINARY_FLOAT | DOUBLE | float | FLOAT32 | FLOAT64 | FLOAT | FLOAT |
BIT | boolean | TINYINT(1) | CHAR(1) | BOOLEAN | boolean | BOOL | BOOL | TINYINT(1) | BOOLEAN |
Date and Time Types
| SQL Server | PostgreSQL | MySQL | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
DATE | date | DATE | DATE | DATE | date | DATE | DATE | DATE | DATE |
TIME | time without time zone | TIME(6) | VARCHAR2(64) | TEXT | time | STRING | TIME | TIME(6) | STRING |
DATETIME | timestamp without time zone | DATETIME(6) | TIMESTAMP | TIMESTAMP | timestamp_ntz | TIMESTAMP | DATETIME | DATETIME(6) | TIMESTAMP |
DATETIME2 | timestamp without time zone | DATETIME(6) | TIMESTAMP | TIMESTAMP | timestamp_ntz | TIMESTAMP | DATETIME | DATETIME(6) | TIMESTAMP |
SMALLDATETIME | timestamp without time zone | DATETIME(6) | TIMESTAMP | TIMESTAMP | timestamp_ntz | TIMESTAMP | DATETIME | DATETIME(6) | TIMESTAMP |
DATETIMEOFFSET | varchar(64) | DATETIME(6) | TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP | timestamp_ltz | STRING | STRING | DATETIME(6) | STRING |
Character Types
| SQL Server | PostgreSQL | MySQL | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
CHAR | character | CHAR | CHAR | TEXT | varchar | STRING | STRING | CHAR | STRING |
NCHAR | character | CHAR | NCHAR | TEXT | varchar | STRING | STRING | CHAR | STRING |
VARCHAR | character varying | VARCHAR | VARCHAR2 | TEXT | varchar | STRING | STRING | VARCHAR | STRING |
NVARCHAR | character varying | VARCHAR | NVARCHAR2 | TEXT | varchar | STRING | STRING | VARCHAR | STRING |
TEXT | text | LONGTEXT | CLOB | TEXT | varchar | STRING | STRING | LONGTEXT | STRING |
NTEXT | text | LONGTEXT | NCLOB | TEXT | varchar | STRING | STRING | LONGTEXT | STRING |
Binary Types
| SQL Server | PostgreSQL | MySQL | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
BINARY | bytea | BINARY | RAW | BYTEA | binary | BYTES | BYTES | BINARY | BINARY |
VARBINARY | bytea | VARBINARY | RAW | BYTEA | binary | BYTES | BYTES | VARBINARY | BINARY |
IMAGE | bytea | VARBINARY | RAW | BYTEA | binary | BYTES | BYTES | VARBINARY | BINARY |
Other Types
| SQL Server | PostgreSQL | MySQL | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
UNIQUEIDENTIFIER | uuid | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
XML | xml | TEXT | CLOB | TEXT | varchar | STRING | STRING | TEXT | STRING |
JSON | jsonb | JSON | CLOB | TEXT | varchar | JSON | JSON | JSON | STRING |
GEOGRAPHY | varchar(4000) | VARCHAR(4000) | VARCHAR2(4000) | TEXT | varchar(4000) | STRING | STRING | VARCHAR(4000) | STRING |
GEOMETRY | varchar(4000) | VARCHAR(4000) | VARCHAR2(4000) | TEXT | varchar(4000) | STRING | STRING | VARCHAR(4000) | STRING |
HIERARCHYID | varchar(4000) | VARCHAR(4000) | VARCHAR2(4000) | TEXT | varchar(4000) | STRING | STRING | VARCHAR(4000) | STRING |
SQL_VARIANT | varchar(4000) | VARCHAR(4000) | VARCHAR2(4000) | TEXT | varchar(4000) | STRING | STRING | VARCHAR(4000) | STRING |
