使用oracle utl_raw作為dump的逆函式

keeptrying發表於2012-05-11

對於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部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-729867/,如需轉載,請註明出處,否則將追究法律責任。

相關文章