|
简化测试
- 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>
复制代码
这是自己在UTF8字符集下做的简化测试
结果:
1、把⑥转换一下,总长度是满足了,但又会引起识别不出来,显示一个?号,也不符合要求
2、集 这个字,经过转换后再LENGTH,得到的值是2,而⑥则还是1
[ 本帖最后由 ClearWindxsw 于 2008-12-3 14:30 编辑 ] |
|