oracle数据库一个汉字占几个字节

***和数据库的编码有关系***

1、数据库编码查询sql:

      1)、SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

              ZHS16GBK一个汉字占用2个字节

              AL32UTF8一个汉字占用3个字节

      2)、select userenv('language') from dual;

              AMERICAN_AMERICA.ZHS16GBK:一个汉字占用2个字节

              AMERICAN_AMERICA.AL32UTF8一个汉字占用3个字节

2、查询占用字符数:

              select length('中华as12') from dual       --6(1+1+1+1+1+1)

           汉字、字母、数字:各占1字符

3、查询占用字节数:

              select lengthb('中华as12') from dual       --8(2+2+1+1+1+1)

            汉字:2字节/3字节;字母:1字节; 数字:1字节

注:上述varchar2肯定是适用的(因为其数据库设置长度就是以字节为单位的),别的字段类型待验证,因为类似nvarchar2这样的字段,数据库中设置的长度本身就是以字符为单位的,所以并不能用数据库字段长度直接套用上述计算。

4、追加一个才看到的点,用全角方式输入的字母(asd)、数字(123)的占用字节数和半角方式输入的字母(asd)、数字(123)是不一样的,以 ZHS16GBK 编码的数据库为例,半角的字母数字的字节数为1,但是全角输入的则分别都是占用2个字节。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值