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


今天在oracle 10g下測試了下varchar2與nvarchar2這兩種類型,網上有很多關於這兩種類型的區別的帖子,我還是自己測試了下。

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

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字節,所以會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM