【开发问题】flink-cdc不用数据库之间的,不同类型的转化

不同的数据库之期间数据类型转化

问题来源与原因

我一开始是flink-cdc,oracle2Mysql,sql

我一开始直接用的oracle【date】类型,mysql【date】类型,sql的校验通过了,但是真正操作数据的时候报错,告诉我oracle的数据格式的日期数据,不可以直接插入到mysql格式的日期数据,说白了就是数据格式不一致导致的

解决过程,思路错误,导致各种错误

错误思路是什么

我想的是既然格式不对,就自己手动把格式转一下,然后变成mysql认可的格式就好了,这之间,报了很多错误,又是方法不对,又是,方法参数类型不对。反正这个路其实是错误的

错误方式1:

错误方式2:

错误方式3:

各种转化错误

正确解决方式,找官网对应的链接器,数据转化

连接器jdbc的地址

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
相关推荐
小吴编程之路7 小时前
MySQL 索引核心特性深度解析:从底层原理到实操应用
数据库·mysql
~莫子7 小时前
MySQL集群技术
数据库·mysql
凤山老林7 小时前
SpringBoot 使用 H2 文本数据库构建轻量级应用
java·数据库·spring boot·后端
就不掉头发8 小时前
Linux与数据库进阶
数据库
与衫8 小时前
Gudu SQL Omni 技术深度解析
数据库·sql
小程故事多_808 小时前
Vibe Coding的致命隐患,你必须知道的技术债务和扩展性危机
大数据·人工智能·aigc
咖啡の猫8 小时前
Redis桌面客户端
数据库·redis·缓存
oradh8 小时前
Oracle 11g数据库软件和数据库静默安装
数据库·oracle
what丶k8 小时前
如何保证 Redis 与 MySQL 数据一致性?后端必备实践指南
数据库·redis·mysql
_半夏曲8 小时前
PostgreSQL 13、14、15 区别
数据库·postgresql