Oracle char varchar varchar2 nvarchar2 的区别
上面字符类型能保存多少个字符与oracle当前的字符集有关系。 select userenv('language') from dual; 假设长度2000字节, 如果字符集是16位编码的,ZHS16GBK,那么每个字符16位,2字节,所以可以容纳1000字符。 如果是32位编码的字符集,4字节,那么只能存储 500个字符。 char:固定长度字符域,最大长度可达2000个字节,如果存储的数据没有达到指定长度,自动补足空格。 例子: create table student2( sno int,sname char(2000),sage int ); insert into student2 values(1,'小项目',24); commit; JDBC读取的时候,还要用 trim把空格去掉。 jdbc下where SNAME='小项目'。无结果 jdbc下where trim(SNAME)='小项目'。才有结果 因此,用char要注意! varchar 可変长,4000字节。 varchar2 可変长,4000字节。 目前VARCHAR是VARCHAR2的同义词。 工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。 Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR, 它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。 如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。 varchar(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等, 可以存储双字节字符25个,如汉字。 varchar2(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等, 可以存储双字节字符25个,如汉字。 nvarchar2可変长,4000字节。 nvarchar2(50)表示该字段类型为nvarchar2,长度为50,不论英文,数字,中文都能存50个。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |