不同的数据库之期间数据类型转化
问题来源与原因
我一开始是flink-cdc,oracle2Mysql,sql
我一开始直接用的oracle【date】类型,mysql【date】类型,sql的校验通过了,但是真正操作数据的时候报错,告诉我oracle的数据格式的日期数据,不可以直接插入到mysql格式的日期数据,说白了就是数据格式不一致导致的
解决过程,思路错误,导致各种错误
错误思路是什么
我想的是既然格式不对,就自己手动把格式转一下,然后变成mysql认可的格式就好了,这之间,报了很多错误,又是方法不对,又是,方法参数类型不对。反正这个路其实是错误的
错误方式1:

错误方式2:

错误方式3:

各种转化错误
正确解决方式,找官网对应的链接器,数据转化
| MySQL type | Oracle type | PostgreSQL type | SQL Server type | Flink SQL type |
|---|---|---|---|---|
| TINYINT | TINYINT | TINYINT | ||
| SMALLINT TINYINT UNSIGNED | SMALLINT INT2 SMALLSERIAL SERIAL2 | SMALLINT | SMALLINT | |
| INT MEDIUMINT SMALLINT UNSIGNED | INTEGER SERIAL | INT | INT | |
| BIGINT INT UNSIGNED | BIGINT INT UNSIGNED | BIGINT | BIGINT | |
| BIGINT UNSIGNED | DECIMAL(20, 0) | |||
| BIGINT | BIGINT | BIGINT | ||
| FLOAT | BINARY_FLOAT | REAL FLOAT4 | REAL | FLOAT |
| DOUBLE DOUBLE PRECISION | BINARY_DOUBLE | FLOAT8 DOUBLE PRECISION | FLOAT | DOUBLE |
| NUMERIC(p, s) DECIMAL(p, s) | SMALLINT FLOAT(s) DOUBLE PRECISION REAL NUMBER(p, s) | NUMERIC(p, s) DECIMAL(p, s) | NUMERIC(p, s) DECIMAL(p, s) | DECIMAL(p, s) |
| BOOLEAN TINYINT(1) | BOOLEAN | BIT | BOOLEAN | |
| DATE | DATE | DATE | DATE | DATE |
| TIME [§] | DATE | TIME [§] [WITHOUT TIMEZONE] | TIME(0) | TIME [§] [WITHOUT TIMEZONE] |
| DATETIME [§] | TIMESTAMP [§] [WITHOUT TIMEZONE] | TIMESTAMP [§] [WITHOUT TIMEZONE] | DATETIME DATETIME2 | TIMESTAMP [§] [WITHOUT TIMEZONE] |
| CHAR(n) VARCHAR(n) TEXT | CHAR(n) VARCHAR(n) CLOB | CHAR(n) CHARACTER(n) VARCHAR(n) CHARACTER VARYING(n) TEXT | CHAR(n) NCHAR(n) VARCHAR(n) NVARCHAR(n) TEXT NTEXT | STRING |
| BINARY VARBINARY BLOB | RAW(s) BLOB | BYTEA | BINARY(n) VARBINARY(n) | BYTES |
| ARRAY | ARRAY |

