今天在数据抽取时,遇见不同数据库数据数据类型转化的问题。纠结了很久,终于解决啦,这里分享给大家:
在SQL Server中,bit数据类型是布尔型,只存储三种值,0、1和null。
要将SQL server中为Bit数据类型抽取到oracle数据库,我们首先想到的是在ORACLE中设置一个相同的数据类型,比如:number、或者varchar2。
备注:oracle数据库中并没有布尔型的数据类型。
但是结果是——无论我们设置为number,还是varchar2,在使用kettle数抽取过程中依旧会报错。(这里的报错信息就没给大家截频了……因为是工作的时候遇见的)
正确的做法是,在建表时将oracle中的数据类型设置为number格式,在表输入时增加一步CASE WHEN:
select
id,
name,
age,
case when sex = 0 then 0 when sex = 1 then 1 else null end sex
from student
这时候就可以把数据抽取过去了
网友评论