mysql varchar vs oracle varchar2

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.