Oracle里Varchar、varchar2的参数(byte和char)的区别测试

本文通过实测对比了Oracle中Varchar与Varchar2类型的使用差异,特别是在处理中文字符时的不同表现。实验显示,Varchar类型受制于字节限制,而Varchar2(char)能更好地支持多字节字符。

Oracle里Varchar、varchar2的参数(byte和char)的区别测试
1 看一下语法图


2 下面进行sqlplus的测试,使用scott/tiger帐号。

SQL> create table test(name varchar(5 byte),namec varchar(5 char));表已创建。 SQL> insert into test(name) values('12345');
已创建 1 行。
SQL> insert into test(name) values('123456');
insert into test(name) values('123456')
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAME" 的值太大 (实际值: 6, 最大值: 5)

SQL> insert into test(name) values('天津');
已创建 1 行。

SQL> insert into test(name) values('天津市');
insert into test(name) values('天津市')
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAME" 的值太大 (实际值: 6, 最大值: 5)

SQL> insert into test(namec) values('12345');
已创建 1 行。
SQL> insert into test(namec) values('123456');
insert into test(namec) values('123456')
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAMEC" 的值太大 (实际值: 6, 最大值: 5)
SQL> insert into test(namec) values('天津');
已创建 1 行。
SQL> insert into test(namec) values('天津市');
已创建 1 行。
SQL> insert into test(namec) values('天津市北京');
已创建 1 行。
SQL> insert into test(namec) values('天津市北京市');
insert into test(namec) values('天津市北京市')
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."TEST"."NAMEC" 的值太大 (实际值: 6, 最大值: 5)

SQL> select * from test;
NAME  NAMEC
----- ----------
12345
天津
      12345
     天津
      天津市
      天津市北京
已选择6行。
SQL>
3 分析
由于一个汉字在我的GBK系统里占用2个字节,所以byte的只能插入2个汉字,而char的可以插入5个汉字。
所以byte 就是字节数,对于汉字,GBK占用2个字节,如果是UTF-8则占用3个字节。
为了充分利用4000个的上限,给自己减少麻烦,建议存储含有中文文字的字段时,采用char类型。

 

精品-ISSCC 2026年国际固态电路会议(脱敏)PPT合集,共35份。Session 1: 论坛介绍Session 2: 处理器Session 3: 可穿戴与无线生物医疗系统Session 4: 模拟技术与放大器Session 5: 亚太赫兹及毫米波相控阵与波束成形器Session 6: 从GHz到THz的探索性接收器架构Session 7: 图像传感器与测距Session 8: 裸片到裸片互连与高速电收发器Session 9: 无线充电Session 10: 数字处理与电路技术Session 11: 流水线型与超高速数据转换器Session 12: 频率合成器与压控振荡器Session 13: 面向AI的电路与用于电路的AISession 14: 非常规互连与光的其他应用Session 15: 动态随机存取存储器、静态随机存取存储器与非易失性存储器Session 16: 能量收集、压电技术与充电器Session 17: 面向AI的亮点芯片发布Session 18: 面向特定领域的技术与电路Session 19: 高压、隔离与显示电源Session 20: 厘米波至太赫兹的射频收发器子系统Session 21: 传感器接口Session 22: 极端环境下的电路Session 23: 下一代光收发器Session 24: 显示器Session 25: 硬件安全Session 26: 计算电源与电源调制器Session 27: 频率发生器、倍频器与调制器Session 28: 来自(ISSCC)框架外的创新Session 29: 用于生命科学与农业的生物化学传感器Session 30: 存内计算Session 31: AI加速器Session 32: 低功耗噪声整形模数转换器Session 33: 射频到毫米波的时变电路技术Session 34: 集成雷达与超宽带收发器Session 35: 用于定位的低功耗无线收发器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值