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个。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松门一枝花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值