Oracle 漢字 佔位

遇到了一個數據插入長度過長問題,記得大學時候,還說過oracle的不一樣編碼下的的大小分配不是同樣的,具體也忘記了,補上,以防下次犯二sql

 

1 step

先查看本身的oracle是什麼字符集oracle

select userenv('language') from dual

好比: SIMPLIFIED CHINESE_CHINA.ZHS16GBK  、 SIMPLIFIED CHINESE_CHINA.AL32UTF8函數

SIMPLIFIED CHINESE_CHINA.ZHS16GBK : 一個漢字佔用2個字節編碼

SIMPLIFIED CHINESE_CHINA.AL32UTF8  : 一個漢字佔用3個字節spa

 

2 step

使用函數查看 漢字 佔幾bcode

SELECT lengthb('我') from dual;

這邊是SIMPLIFIED CHINESE_CHINA.AL32UTF8 ,因此結果是 3class

 

3 step

好比還有一些類型的特色select

varchar(32) 該字段長度爲32類型爲varchar2類型,能夠放單字節字符32個(字母、數字),存儲雙字節字符25個(漢字)。他若是輸入數據不足,則以空格填充
varchar2(32) 該字段長度爲32類型爲varchar2類型,能夠放單字節字符32個(字母、數字),漢字的話,就要根據具體的字符集,就是上面說的,多是2個字節,也可能3個字節數據


nvarchar2(32) 該字段類型爲nvarchar2,長度爲32,不論英文,數字,中文都能存32個 ,不想去計算這些破事的話,能夠直接選擇nvarchar2,省心!英文

 

osc時候開始,敏感字檢查的這麼嚴格了?!或者說是亂匹配檢查

----------------------------------------------------------------------------------------

相關文章
相關標籤/搜索