最近在pl/sql developer中做了关于oracle中substrb函数的应用,发现了一些奇怪现象.请教各位先知.
select substrb('大小abc',1,2) from dual;
运行出结果为: ' ' (两个空格)substrb('大小abc',1,3) 结果为: '大'
substrb('大小abc',1,4) 结果为: '大 ' (包含一个空格)
substrb('大小abc',1,5) 结果为: '大 ' (包含两个空格)
substrb('大小abc',1,6) 结果为: '大小'以为是developer的问题,换用sql*plus做,问题依旧.按道理说一个汉字应占两个字节,可我做出来的却不是这样.
不知哪位也遇到过我这中情况.
select substrb('大小abc',1,2) from dual;
运行出结果为: ' ' (两个空格)substrb('大小abc',1,3) 结果为: '大'
substrb('大小abc',1,4) 结果为: '大 ' (包含一个空格)
substrb('大小abc',1,5) 结果为: '大 ' (包含两个空格)
substrb('大小abc',1,6) 结果为: '大小'以为是developer的问题,换用sql*plus做,问题依旧.按道理说一个汉字应占两个字节,可我做出来的却不是这样.
不知哪位也遇到过我这中情况.
--
大SQL> select substrb('大小abc',1,3) from dual;SUB
---
大SQL> select substrb('大小abc',1,4) from dual;SUBS
----
大小SQL> select substrb('大小abc',1,5) from dual;SUBST
-----
大小aSQL> select substrb('大小abc',1,6) from dual;SUBSTR
------
大小abSQL>
SQL> select substrb('大小abc',1,3) from dual;
SUBSTRB('大小ABC',1,3)
----------------------
大
SQL> select substrb('大小abc',1,4) from dual;
SUBSTRB('大小ABC',1,4)
----------------------
大小
SQL> select substrb('大小abc',1,5) from dual;
SUBSTRB('大小ABC',1,5)
----------------------
大小a
SQL> select substrb('大小abc',1,6) from dual;
SUBSTRB('大小ABC',1,6)
----------------------
大小ab
事实证明,是你那边的问题
谢了,结贴.人人有分.
干嘛不用substr 而用 substrb