Oracle:varchar和varchar2的区别

Oracle:varchar和varchar2的区别Oracle:varchar和varchar2的区别 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;2.varchar2把空串等同于null处理,而varchar仍按照空串处理;3.varchar2字符要用几个字节存储,要看数据库使用的字符集. 然后char和varchar2的区别是

大家好,又见面了,我是你们的朋友全栈君。Oracle:varchar和varchar2的区别

 

1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;

2.varchar2把空串等同于null处理,而varchar仍按照空串处理;

3.varchar2字符要用几个字节存储,要看数据库使用的字符集.

 

然后char和varchar2的区别是

char是固定长度,varchar2和varchar都是可变长度

 

比如一个类型是char(10),varchar2(10)

 

当你输入一个字符串aaa

在char里还是占10位,后边的7位补空格

而varchar2或varchar只占3位

create table test1(a char(10),b NUMBER(10) NOT NULL);
insert into test1 values ( '   ','1000000001' );(第一个字段为三个空格)
insert into test1 values ( 'aaa','1000000002' );
insert into test1 values ( 'bbb','1000000003' ); 

select replace(test1.A,' ','空格') as a,test1.B as b from test1;
----------------------------------
空格空格空格空格空格空格空格空格空格空格	     1000000001
aaa空格空格空格空格空格空格空格	                1000000002
bbb空格空格空格空格空格空格空格	                1000000003

drop table test1
create table test1(a varchar2(10),b NUMBER(10) NOT NULL);

insert into test1 values ( '   ','1000000001' );
insert into test1 values ( 'aaa','1000000002' );
insert into test1 values ( 'bbb','1000000003' );

select replace(test1.A,' ','空格') as a,test1.B as b from test1;
-----------------------------------------
空格空格空格	1000000001
aaa	        1000000002
bbb	        1000000003

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150068.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号