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)


相关推荐

  • Python 开发 漏洞的批量搜索与利用.(GlassFish 任意文件读取)「建议收藏」

    Python 开发 漏洞的批量搜索与利用.(GlassFish 任意文件读取)「建议收藏」?Python开发学习的意义:?(1)学习相关安全工具原理.?(2)掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况.?(3)在二次开发Bypass,日常任务,批量测试利用等方面均有帮助.

  • net:err_unknown_url_scheme

    net:err_unknown_url_scheme

  • JAVA高并发的三种实现

    提到锁,大家肯定想到的是sychronized关键字。是用它可以解决一切并发问题,但是,对于系统吞吐量要求更高的话,我们这提供几个小技巧。帮助大家减小锁颗粒度,提高并发能力。初级技巧-乐观锁乐观锁使用的场景是,读不会冲突,写会冲突。同时读的频率远大于写。悲观锁的实现:悲观的认为所有代码执行都会有并发问题,所以将所有代码块都用sychronized锁住乐观锁的实现:…

  • Java 里的异常(Exception)详解

    Java 里的异常(Exception)详解作为一位初学者,本屌也没有能力对异常谈得很深入.只不过Java里关于Exception的东西实在是很多.所以这篇文章很长就是了..一,什么是java里的异常由于java是c\c++发展而

  • MAC下Myeclipse SVN插件安装[通俗易懂]

    MAC下Myeclipse SVN插件安装[通俗易懂]1.下载SVN插件包:http://download.csdn.net/detail/frankyanchen/45128992.在myeclipse文件夹下创建一个文件夹为svntool并复制下载的安装包中的features,plugins两个文件。3.在/Applications/MyEclipse/MyEclipse10.app/Contents/Profile/dropins

  • windows服务器审计日志存放位置,windows服务器审计日志存放位置[通俗易懂]

    windows服务器审计日志存放位置,windows服务器审计日志存放位置[通俗易懂]windows服务器审计日志存放位置内容精选换一换Manager的审计日志默认保存在数据库中,如果长期保留可能引起数据目录的磁盘空间不足问题,管理员如果需要将审计日志保存到其他归档服务器,可以在FusionInsightManager设置转储参数及时自动转储,便于管理审计日志信息。若用户未配置审计日志转储,当审计日志达到十万条,系统自动将这十万条审计日志保存到文件中。保存路径为主管理节为加强对…

发表回复

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

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