1. 程式人生 > >mysql的varchar(20)和oracle的varchar2(20)有什麼不同?

mysql的varchar(20)和oracle的varchar2(20)有什麼不同?

這裡講一下編碼,涵蓋內容包括:gbk、utf8編碼,漢字,資料庫,為什麼會出現亂碼。


Mysql庫,character為utf_8


建表test: create table test(a varchar(20));


1
利用length,char_length函式看到字串‘啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊’在utf_8的編碼下佔用了60byte空間,以及20個字元的位置。


 mysql  varchar(20)  ;表明欄位可以容納20個字元的字串,漢字字母均為一個字元;


 


ORACLE:


2


插入字串‘啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊’報錯 顯示超長。


繼續
3


利用函式length,lengthb的得到字串的佔用字元以及位元組。


 


oracle  varchar2(20) 標識欄位最多可以容納20個位元組,漢字的佔用位元組需要依賴具體的資料庫編碼確定