oracle 的rpad函数,关于oracle 10g在utf8字符集下的rpad函数的疑惑

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0

Connected as ******

SQL>

SQL> --字符集

SQL> SELECT USERENV('language') LANG  FROM DUAL;

LANG

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA.UTF8

SQL> --version

SQL> SELECT VERSION FROM V$INSTANCE;

VERSION

-----------------

10.2.0.4.0

SQL> ------默认情况下的特殊字符和'集'的显示及DUMP-----------

SQL> --默认

SQL> SELECT 'default' REMARK, '⑥' STR, LENGTH('⑥') L_STR,

2         LENGTHB('⑥') LB_STR, DUMP('⑥', 1016) D_STR

3    FROM DUAL

4  UNION

5  SELECT 'default' REMARK, '集' STR, LENGTH('集') L_STR,

6         LENGTHB('集') LB_STR, DUMP('集', 1016) D_STR

7    FROM DUAL

8  UNION --联合一下方便查看

9  --convert之后的

10  SELECT 'convert' REMARK,

11         CONVERT('⑥', 'zhs16gbk', 'UTF8') STR,

12         LENGTH(CONVERT('⑥', 'zhs16gbk', 'UTF8')) L_STR,

13         LENGTHB(CONVERT('⑥', 'zhs16gbk', 'UTF8')) LB_STR,

14         DUMP(CONVERT('⑥', 'zhs16gbk', 'UTF8'), 1016) D_STR

15    FROM DUAL

16  UNION

17  SELECT 'convert' REMARK,

18         CONVERT('集', 'zhs16gbk', 'UTF8') STR,

19         LENGTH(CONVERT('集', 'zhs16gbk', 'UTF8')) L_STR,

20         LENGTHB(CONVERT('集', 'zhs16gbk', 'UTF8')) LB_STR,

21         DUMP(CONVERT('集', 'zhs16gbk', 'UTF8'), 1016) D_STR

22    FROM DUAL;

REMARK  STR      L_STR     LB_STR D_STR

------- --- ---------- ---------- ----------------------------------------

convert ⑥           1          2 Typ=1 Len=2 CharacterSet=UTF8: a2,de

convert 集           2          2 Typ=1 Len=2 CharacterSet=UTF8: bc,af

default ⑥           1          3 Typ=96 Len=3 CharacterSet=UTF8: e2,91,a5

default 集           1          3 Typ=96 Len=3 CharacterSet=UTF8: e9,9b,86

SQL> -------------对RPAD进行的测试-------------

SQL> SELECT 'default' REMARK, --默认情况下的RPAD

2         RPAD('⑥', 3, '-') STR,

3         LENGTH(RPAD('⑥', 3, '-')) L_STR,

4         LENGTHB(RPAD('⑥', 3, '-')) LB_STR,

5         RPAD('集', 3, '-') ZH,

6         LENGTH(RPAD('集', 3, '-')) L_ZH,

7         LENGTHB(RPAD('集', 3, '-')) LB_ZH

8    FROM DUAL

9  UNION

10  SELECT 'convert' REMARK, --convert后的RPAD

11         RPAD(CONVERT('⑥', 'zhs16gbk', 'UTF8'), 3, '-') STR,

12         LENGTH(RPAD(CONVERT('⑥', 'zhs16gbk', 'UTF8'), 3, '-')) L_STR,

13         LENGTHB(RPAD(CONVERT('⑥', 'zhs16gbk', 'UTF8'), 3, '-')) LB_STR,

14         RPAD(CONVERT('集', 'zhs16gbk', 'UTF8'), 3, '-') ZH,

15         LENGTH(RPAD(CONVERT('集', 'zhs16gbk', 'UTF8'), 3, '-')) L_ZH,

16         LENGTHB(RPAD(CONVERT('集', 'zhs16gbk', 'UTF8'), 3, '-')) LB_ZH

17    FROM DUAL;

REMARK  STR        L_STR     LB_STR ZH         L_ZH      LB_ZH

------- ----- ---------- ---------- ---- ---------- ----------

convert ?-             3          3 集-           3          3

default ⑥--           3          5 集-           2          4

SQL>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值