遇到了一個數據插入長度過長問題,記得大學時候,還說過oracle的不一樣編碼下的的大小分配不是同樣的,具體也忘記了,補上,以防下次犯二sql
先查看本身的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
使用函數查看 漢字 佔幾bcode
SELECT lengthb('我') from dual;
這邊是SIMPLIFIED CHINESE_CHINA.AL32UTF8 ,因此結果是 3class
好比還有一些類型的特色select
varchar(32) 該字段長度爲32類型爲varchar2類型,能夠放單字節字符32個(字母、數字),存儲雙字節字符25個(漢字)。他若是輸入數據不足,則以空格填充
varchar2(32) 該字段長度爲32類型爲varchar2類型,能夠放單字節字符32個(字母、數字),漢字的話,就要根據具體的字符集,就是上面說的,多是2個字節,也可能3個字節數據
nvarchar2(32) 該字段類型爲nvarchar2,長度爲32,不論英文,數字,中文都能存32個 ,不想去計算這些破事的話,能夠直接選擇nvarchar2,省心!英文
osc時候開始,敏感字檢查的這麼嚴格了?!或者說是亂匹配檢查
----------------------------------------------------------------------------------------