關於oracle中varchar2與nvarchar2的一點認識

今天在oracle 10g下測試了下varchar2與nvarchar2這兩種類型,網上有不少關於這兩種類型的區別的帖子,我仍是本身測試了下。數據庫

varchar2(size type),size最大爲4000,type可爲char或者byte,默認是byte。oracle

varchar2最多存放4000字節的數據,無論type是char仍是byte。因此若是你設置varchar2(4000 char),你能夠存入4000個字母,可是不能存入4000個漢字。若是數據庫字符集編碼是GBK,那麼varchar2最多能存放2000個漢字,若是字符集編碼是UTF-8,那麼則只能最多存放1333個漢字了。測試

nvarchar2(size),size最大值爲2000,單位是字符,並且無論是漢字仍是字母,每一個字符的長度都是2個字節。因此nvarchar2類型的數據最多能存放2000個漢字,也最多隻能存放2000個字母。而且nvarchar2不一樣於varchar2,他不受數據庫字符集的影響。編碼

 

另外若是咱們把A1,A2都設爲varchar2(4000),而且這兩個字段的內容長度都超過了2000字節,那麼使用select A1||A2 from table這樣的語句時,由於結果超過了4000字節,因此會報錯。table

相關文章
相關標籤/搜索