kettle從入門到精通 第八十課 ETL之kettle kettle中的json物件欄位寫入postgresql中的json欄位

慕容尘轩發表於2024-07-26

場景:源資料庫表為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應該有進行轉換處理。

相關文章