对于dump出来的内容,通常不能直观的了解到想要的信息,可以通过utl_raw来实现。
1、 转换数字
(1)、整数
SYS@ tsid > select dump(156983,16) from dual;
DUMP(156983,16)
------------------------
Typ=2 Len=4: c3,10,46,54
SYS@ tsid > select utl_raw.cast_to_number('c3104654') value from dual;
VALUE
----------
156983
上面的写法,当utl_raw.cast_to_number()引号中的内容多时,用起来不方便。可以加个replace()函数,处理起来便于阅读。
SYS@ tsid > select utl_raw.cast_to_number(replace('c3,10,46,54',',')) value from dual;
VALUE
----------
156983
(2)、小数
SYS@ tsid > select dump(1765.93,16) from dual;
DUMP(1765.93,16)
------------------------
Typ=2 Len=4: c2,12,42,5e
SYS@ tsid > select utl_raw.cast_to_number(replace('c2,12,42,5e',',')) value from dual;
VALUE
----------
1765.93
2、 转换字符串
SYS@ tsid > select dump('oracle',16) value from dual;
VALUE
-------------------------------
Typ=96 Len=6: 6f,72,61,63,6c,65
SYS@ tsid > select utl_raw.cast_to_varchar2(replace('6f,72,61,63,6c,65',',')) value from dual;
VALUE
----------
oracle
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25744374/viewspace-729867/ ,如需转载,请注明出处,否则将追究法律责任。