OB和DB2 ETL中遇到的数据转换

本文对比了DB2与OceanBase中的数据类型转换规则,特别是bigint与INTEGER类型的对应关系,以及时间字段的处理方式。对于时间字段,默认当前日期与自动更新时间字段的功能在两种数据库系统中的实现也进行了详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DB2:>>>>  OceanBase oracle tentent
bigint ---- Number(20)
INTEGER ----- Number(10)

时间字段默认当前日期:

DB2: "LOADTIME" TIMESTAMP NOT NULL WITH DEFAULT CURRENT TIMESTAMP 
OceanBase: "LOADTIME" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

时间字段更新默认更新时间字段【DB2支持,OceanBase中mysql租户支持、ORACLE租户不支持】:

DB2:  "UPDATED_TS" TIMESTAMP NOT NULL IMPLICITLY HIDDEN GENERATED BY DEFAULT FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP

mysql租户下:

create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,   --只是新增数据时会默认为当前时间
UPDATE_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  --新增数据、更新数据时都会更新成当前时间

创建别名:
DB2 Alias:

--创建别名
CREATE ALIAS TEST.A FOR TABLE TEST.A_0;
--查询别名
SELECT TRIM(BASE_TABNAME) FROM SYSCAT.TABLES WHERE "TYPE"='A' AND TABNAME IN ('A') AND TABSCHEMA = 'TEST' WITH UR

OceanBase SYNONYM:

--创建同义词
CREATE OR REPLACE SYNONYM A for A_0;
--查询同义词
SELECT TABLE_NAME FROM USER_SYNONYMS WHERE SYNONYM_NAME = 'A'

OB时间转换:

TO_TIMESTAMP('2018-12-26 11:55:21.552698','YYYY-MM-DDHH24:MI:SS.FF')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值