length,lengthb和substr,subtrab

length表示的是字符串的字符长度,lengthb表示的是字符串的字节长度;

substr表示根据字符长度获取子串,substrb表示根据字节长度获取字符串。

SELECT LENGTH('length,lengthb测试') FROM dual;--字符数

 

SELECT LENGTHB('length,lengthb测试') FROM dual; --字节数

 

SELECT SUBSTR('测试length,lengthb测试',1,5) FROM dual;

 

SELECT SUBSTRB('测试length,lengthb测试',1,5) FROM dual;


esle1:

一个中文汉字占用几个字节,由oracle服务器端字符集编码决定

select userenv('language') from dual;

SIMPLIFIED CHINESE_CHINA.ZHS16GBK --个汉字占两个字节

SIMPLIFIED CHINESE_CHINA.AL32UTF8 一个汉字占三个字节

也可以select lengthb('你') from dual来查询。

else2:
oracle中定义字符类型的时候默认长度是bytes,比如varchar(20)表示的是20个字节长度,
如果是在 ZHS16GBK,也就是只能存放十个汉字。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值