oracle中char和vachar的区分

7 篇文章 0 订阅
3 篇文章 0 订阅

比较:

关于varchar长度的说明,varchar和char的区别是char长度是固定的,内容不够列的宽度也会占用列的宽度,比如一个字段是char型,长度是20,username char(20),则无论username内容是多少,都会占用20个固定的宽度,就算username是一个字符也是如此,如果某些列的数据长度是比较固定某个长度的,则最好使用此类型。varchar的长度是变化的,如果实际数据内容不足列的宽度则只占用合适的空间来存放数据,会大大地节省数据库空间。但是,varchar更适合列比较大的,如果varchar(2)这样列比较小的就没有意义了,它反而还要花费额外的空间来记录该列的数据实际长度,数据库在处理varchar列时要进行额外的计算处理,并存储数据的实际长度,在效率上不如char性能高。

使用:

varchar最大4000。这个4000可能是4000字节也可能是4000字符,取决于参数NLS_LENGTH_SEMANTICS的设置,这个参数有两个选项,BYPE,CHAR,如果是BYTE则是4000字节,可以放4000个英文和数字,但汉字或其他字符就不一定了,肯定的是只会小于4000,如果是汉字占三个字节,则能放4000/3个字符。
alter session set NLS_LENGTH_SEMANTICS=‘CHAR’;可以修改这个参数 =‘CHAR’ 或 =‘BYTE’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值