1.錯誤提示:
mysql的Data truncation: Data too long for column 'path' at row 1
錯誤原因:
1.字段過長而導致出錯的,
2. 可能是因為數據庫里的表設置的字符集不相同。
解決辦法:
varchar(10) ——>varchar(20)
alter table `cms_activity_test` convert to character set gbk collate gbk_chinese_ci;(單獨修改指定表的字符集)
其他參考:
mysql和oracle做數據同步。其中表的一個字段在mysql中設置為varchar(6),Oracle中為varchar2(6)
但mysql中能正常存放的數據同步到oracle中卻抱ORA-12899: value too large for column錯誤。
這是為什么呢?
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類型,可以保證更好的兼容性。