Oracle 數據庫字符集
在項目中用到數據的移植,源數據庫(db1)字符集 :ZHS16GBK ;目標數據庫(db2)字符集: AL32UTF8; 程序發佈使用了 glassfishvs ;
在應用程序進行數據遷移過程中,從源數據庫讀取數據在向目標數據庫插入時報錯誤:
ORA-12899:列值太大(實際值:4 最大值:1); 實際上 在 源數據庫和目標數據庫執行的是同一套建表語句;
1、爲了測試引起原因,我們又建了一個測試數據庫(db3),數據庫字符集:ZHS16GBK 。 在db3上進行測試,數據抽取插入沒有問題; 初步排除了 程序發佈的問題;
由於字符編碼不一致,也會導致出現這樣的問題;解決方案爲 增大列的長度;
3、同事在查看數據庫驅動驅動時發現,數據庫驅動用的是老系統的驅動;更換了最新的數據庫驅動後,執行往db2中插入數據,數據插入成功;
因爲這個問題弄了一天;記下來 也給遇到這個問題的朋友提供多一個解決方案選擇;