kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景:源数据库表为mysql的其中有json字段,通过kettle 查询出来 插入到目标数据库 postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。

1、创建测试表。

CREATE TABLE t3 (
    id int,
    name JSON
);

2、测试mysql

使用mysql,字段类型无论使用String还是Binary类型数据都可以正常插入mysql表中的json字段,如下图所示:

 3、测试postgres

1)字段类型设置为String,无法正常插入,表输出报错,如下图所示:

 

  2)字段类型设置为Binary,依然无法正常插入,表输出报错,如下图所示:

4、错误信息丢给GPT寻转答案

 5、根据gpt建议进行测试,动态构造sql语句&动态执行。如下图所示:

保存&点击运行,数据正确插入postgresql数据库。

查看数据T3表,数据已经正确被写入,如下图所示:

 

 6、写在最后

本人在DBeaver中直接执行INSERT INTO public.t3 (name) VALUES ('{"name":"java小金刚"}');是可以正常插入到json字段的,猜测DBeaver应该有进行转换处理。

 

 

posted @ 2024-07-26 22:02  慕容尘轩  阅读(10)  评论(0编辑  收藏  举报