Oracle char varchar varchar2 nvarchar2 的区别
上面字符類型能保存多少個字符與oracle當(dāng)前的字符集有關(guān)系。
select userenv('language') from dual;
假設(shè)長度2000字節(jié),
如果字符集是16位編碼的,ZHS16GBK,那么每個字符16位,2字節(jié),所以可以容納1000字符。
如果是32位編碼的字符集,4字節(jié),那么只能存儲 500個字符。
char:固定長度字符域,最大長度可達(dá)2000個字節(jié),如果存儲的數(shù)據(jù)沒有達(dá)到指定長度,自動補足空格。
例子:
create table student2(sno int,sname char(2000),sage int );insert into student2 values(1,'小項目',24); commit;JDBC讀取的時候,還要用 trim把空格去掉。
jdbc下where SNAME='小項目'。無結(jié)果
jdbc下where trim(SNAME)='小項目'。才有結(jié)果
因此,用char要注意!
varchar 可変長,4000字節(jié)。
varchar2 可変長,4000字節(jié)。
目前VARCHAR是VARCHAR2的同義詞。
工業(yè)標(biāo)準(zhǔn)的VARCHAR類型可以存儲空字符串,但是oracle不這樣做,盡管它保留以后這樣做的權(quán)利。
Oracle自己開發(fā)了一個數(shù)據(jù)類型VARCHAR2,這個類型不是一個標(biāo)準(zhǔn)的VARCHAR,
它將在數(shù)據(jù)庫中varchar列可以存儲空字符串的特性改為存儲NULL值。
如果你想有向后兼容的能力,Oracle建議使用VARCHAR2而不是VARCHAR。
varchar(50) 表示該字段類型為varchar2類型,長度為50,可以存單字節(jié)字符50個,如字母、數(shù)字等,
可以存儲雙字節(jié)字符25個,如漢字。
varchar2(50) 表示該字段類型為varchar2類型,長度為50,可以存單字節(jié)字符50個,如字母、數(shù)字等,
可以存儲雙字節(jié)字符25個,如漢字。
nvarchar2?可変長,4000字節(jié)。
nvarchar2(50)表示該字段類型為nvarchar2,長度為50,不論英文,數(shù)字,中文都能存50個。
總結(jié)
以上是生活随笔為你收集整理的Oracle char varchar varchar2 nvarchar2 的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat下找不到properties
- 下一篇: Mybatis源码阅读(五 ):接口层—