Data type support & mapping for SQL Server sources
SQL Server source type | BigQuery | Databricks | MySQL | Oracle | PostgreSQL | Snowflake | Spanner | SQL Server / Azure Synapse |
---|---|---|---|---|---|---|---|---|
bigint | int64 | bigint | bigint | int | bigint | integer | int64 | bigint |
binary | bytes | binary | binary(1) | blob | bytea | binary | bytes(1) | binary(1) |
binary(s) | bytes | binary | binary(s) | blob | bytea | binary | bytes(s) | binary(s) |
bit | not supported | not supported | bit(1) | not supported | bit varying | boolean | not supported | bit |
char | string | string | character(1) | character(1) | character(1) | character(1) | string(1) | character(1) |
char(s) | string | string | character(s) longtext if s>255 | character(s) clob if s>2000 | character(s) | character(s) | string(s) | character(s) |
date | date | date | date | date | date | date | date | date |
datetime | datetime | timestamp | datetime | timestamp | timestamp without timezone | timestamp | timestamp | datetime2 |
datetime2 | datetime | timestamp | datetime | timestamp | timestamp without timezone | timestamp | timestamp | datetime2 |
datetimeoffset | timestamp | timestamp | timestamp | timestamp with time zone | timestamp with time zone | timestamp with time zone | timestamp | datetimeoffset |
decimal | string | decimal(38) | decimal(18,0) | number(18,0) | numeric(18,0) | numeric(18,0) | float64 | decimal(18,0) |
decimal(p,s) | numeric(p) if p<=38 and s<=8 string if p>38 or s>9 | decimal(p,s) if p<=38, s<=37 string if p>38 or s>37 | decimal(p,s) if p<=65 and s<=30 text if p>65 or s>30 | number(p,s) if p<=38 ands<=127 varchar2(1000) if p>38 or s>127 | numeric(p,s) | numeric(p,s) if p<=38 and s<=37 varchar if p>38 or s>37 | float64 if p<=308 and s<=15 string(max) if p>308 pr s>15 | decimal(p,s) if p<=38 and s<=38 varchar(8000) if p>38 or s>38 |
decimal(p) | numeric(p) if p<=38 string if p>38 | decimal(p,0) if p<=38 string if p>38 | decimal(p) if p<=65 text if p>65 | number(p,s) if p<=38 varchar2(1000) if p>38 | numeric(p) | numeric(p) if p<=38 varchar if p>38 | float64 if p<=308 string(max) if p>308 | decimal(p) if p<=38 varchar(8000) if p>38 |
float | float64 | float | double | float | double precision | float | float64 | float(s) |
float(p) | float64 | float | float(p) if p<=38 double if p>38 | float(p) | double precision | float(p) if p<=38 float if p>38 | float64 | float(p) if p<=53 varchar(8000) if p>53 |
image | bytes | binary | longblob | blob | bytea | binary | bytes(max) | varbinary(max) |
int | int64 | bigint | integer | int | integer | integer | int64 | integer |
money | not supported | not supported | not supported | not supported | not supported | not supported | not supported | not supported |
nchar(s) | string | string | nchar(s) if s<255 nvarchar(s) if s>255 | nachar(s) if s<=1000 nclob if s>1000 | character(s) | character(s) | string(s) | nchar(s) if <= 4000 nvarchar(max) > 4000 |
ntext | string | string | longtext | nclob | text | varchar | string(s) | nchar(s) if <= 4000 nvarchar(max) > 4000 |
numeric | string | decimal(38) | decimal(18,0) | number(18,0) | numeric(18,0) | numeric(18,0) | float64 | numeric(18,0) |
numeric(p,s) | numeric(p) if p<=38 and s<=8 string if p>38 or s>9 | decimal(p,s) if p<=38, s<=37 string if p>38 or s>37 | decimal(p,s) if p<=65 and s<=30 text if p>65 or s>30 | number(p,s) if p<=38 and s<=127 number if p>38 or s>127 | numeric(p,s) | numeric(p) if p<=38 and s<=37 varchar if p>38 or s>37 | float64 if p<=308 and s<=15 string(max) if p>308 pr s>15 | numeric(p,s) if p<=38 and s<=38 varchar(8000) if p>38 or s>38 |
numeric(p) | numeric(p) if p<=38 string if p>38 | decimal(p,0) if p<=38 string if p>38 | decimal(p) if p<=65 decimal(65) if p>65 | number(p) if p<=38 number(*,0) if p>38 | numeric(p) | numeric(p) if p<=38 varchar if p>38 | int64 if p<=20 float64 if 20<p<=308 string(max) if p>308 | numeric(p) if p<=38 numeric(38) if p>38 |
nvarchar(s) | string | string | nvarchar(s) if s<65535 longtext if s>65535 | nvarchar(s) if s<=4000 nclob if s>4000 | character varying | varchar | string(s) | nvarchar(s) if <= 4000 nvarchar(max) if > 4000 |
real | float64 | float | float | float | double precision | float | not supported | float(s) |
smalldatetime | datetime | timestamp | datetime | timestamp | timestamp without timezone | timestamp | timestamp | datetime2 |
smallint | int64 | bigint | smallint | int | smallint | integer | int64 | smallint |
smallmoney | not supported | not supported | not supported | not supported | not supported | not supported | not supported | small money |
text | string | string | longtext | clob | text | varchar | string(max) | varchar(s) if <= 8000 varchar(max) > 8000 |
time | time | timestamp | time | varchar2(100) | time | time | string(max) | time |
tinyint | int64 | bigint | tinyint unsigned | int | smallint | integer | int64 | tinyint |
varbinary | bytes | binary | varbinary(1) | blob | character varying(1) | varbinary | bytes(1) | varbinary(1) |
varbinary(s) | bytes | binary | varbinary(s) | blob | character varying(s) | varbinary | bytes(s) | varbinary(s) |
varchar(s) | string | string | varchar(s) | varchar2(s) if s<=4000 clob if s>4000 | character varying(s) | varchar(s) | string(s) | varchar(s) if s<=8000 varchar(max) if s>8000 |
xml | string | string | longtext | xmltype | xml | varchar | string(max) | xml |
SQL Server source data types geography, geometry, rowversion, sql_variant, udt, and uniqueidentifier are not supported. |