实例分析:
select substrb('大小abc',1,2) from dual; --大
select lengthb(substrb('大小abc',1,2)) from dual; -2
select length(substrb('大小abc',1,2)) from dual; -1
select substrb('大小abc',1,3) from dual; --大
select lengthb(substrb('大小abc',1,3)) from dual; --3
select length(substrb('大小abc',1,3)) from dual; --2
通过上面的实例分析,oracle汉字字符是占2位,但也可以根据需要,实际占到3位,猜想应该存储时添加了一位标识符之类的东东。
结论:
substr()按字符截取(不管字符串由汉字或字母或其他字符组成,都认为是一个字符),substrb()按字节截取(按字符实际占用的位数截取)。