標籤:io ar 使用 for strong sp 資料 on cti
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類型,可以保證更好的相容性。
mysql varchar vs oracle varchar2