人大金倉 TEXT 轉 JSON 最方便的方式

2022-08-09 09:30:16 字數 1030 閱讀 7707

之前負責的乙個專案有使用到 mysql json 欄位的列,直接通過金倉資料庫提供的遷移工具會導致 json 對映的列內的中文字元編碼亂碼,這裡提供乙個本人測試過的思路解決該問題。

備份乙份需要遷移的 mysql 資料庫。

將需要轉換的 mysql 資料庫的列從 json 型別改為 text 型別。

使用資料庫遷移工具執行 mysql 到 金倉的資料庫的遷移工作。

對遷移後的資料列執行 json 轉換,具體的 text 到 json 轉換語句為alter table 《表名》 alter column 《列名》 type json using 《列名》::json;

如此一來間接的轉換後就不會發生 json 列內中文亂碼問題了。

具體亂碼原因為資料庫遷移工具缺少針對 json 轉換的中文編碼處理。

之前人大金倉的工程師是通過 mysql 匯出為中間表 csv 的形式之後,再通過 csv 匯入到 金倉資料庫,非常麻煩,而且如果檔案很大匯出工作可能會很困難。

其他說明,關於 postgresql 中的語句alter table 《表名》 alter column 《列名》 type json using 《列名》::json;

關於 postgresql 中的 json 和 jsonb 區別如下:

jsonb 型別的輸出是對輸入的內容進行了重新格式化,並刪掉了輸入時文字

中的空白。此外,插入記錄時屬性欄位的順序資訊是不保留的。

jsonb 比 json 多支援的運算子有以下幾個:等值判定運算子(=)、包含關係判定運算子

(@>)、被包含關係判定運算子(<@)、鍵值存在判定運算子(?)、判定一組鍵值中是否有任

意乙個已存在的運算子(?|),以及判定一組鍵值中的每乙個是否均已存在的運算子(?&)。

jsonb 型別的字段上可以直接建立 gin 索引

jsonb 不允許其內部記錄的鍵值重複,如果出現重複則會從中自動選擇一條,其餘的

重覆記錄會被丟棄,但 json 型別中記錄鍵值重複是允許的。

dci odbc mysql 人大金倉

pdo驅動是通過 php 提供的 zend engine 開發的針對 php 訪問 kingbasees 伺服器的驅動程式。非執行緒安全的提供以下版本 linux x86 pdo kdb for php 5.2.x.tar.gz pdo kdb for php 5.3.3.tar.gz pdo kd...

記錄 人大金倉的坑

日期 時間值 current datetime 不再被支援了 建立表字段型別不支援 datetime型別,應改用 timestamp without time zone 不支援 comment 語法,應改用 comment on table qdp user role relation is 使用者...

人大金倉資料庫使用總結

這個資料庫是仿照oracle資料庫做的,所以有些疑難問題而已參照oracle的做法來。還是不行的話,就只能通過檢視人大金倉的幫助文件來找解決方案了。sql語句 alter table tb ca alter column ca name type varchar 100 報錯資訊 執行語句 1 al...