1.錯誤提示:mysql
mysql的Data truncation: Data too long for column 'path' at row 1sql
錯誤緣由:數據庫
1.字段過長而致使出錯的,oracle
2. 多是由於數據庫裏的表設置的字符集不相同。spa
解決辦法:ci
varchar(10) ——>varchar(20)同步
alter table `cms_activity_test` convert to character set gbk collate gbk_chinese_ci;(單獨修改指定表的字符集)it
其餘參考:io
mysql和oracle作數據同步。其中表的一個字段在mysql中設置爲varchar(6),Oracle中爲varchar2(6)
但mysql中能正常存放的數據同步到oracle中卻抱ORA-12899: value too large for column錯誤。
這是爲何呢?table
mysql中varchar(6)表明能夠存放6個漢字,6個字母,或6個數字。
oracle中varchar2(6)表明能夠中存放6個字節。即oracle中varchar2的長度表明字節數而不是字符數。
mysql中一個漢字佔三個字節,Oracle中一個漢字佔兩個字節。
雖然mysql varchar 和orache varchar2中字段設置相同的長度,但oracle中卻存放不下
SQL> insert into toracle values('北京蒙迪艾爾');
insert into toracle values('北京蒙迪艾爾')
ORA-12899: value too large for column "SCOTT"."TORACLE"."NAME" (actual: 12, maximum: 6)
-- 在oracle中varchar2(6)中插入6個漢字失敗
1.varchar2把全部字符都佔兩字節處理(通常狀況下),varchar只對漢字和全角等字符佔兩字節,數字,英文字符等都是一個字節;2.VARCHAR2把空串等同於null處理,而varchar仍按照空串處理;3.VARCHAR2字符要用幾個字節存儲,要看數據庫使用的字符集,大部分狀況下建議使用varchar2類型,能夠保證更好的兼容性。