oracle reverse函式

jidongzheng發表於2009-03-20

oracle 提供一個reverse函式,可以實現將一個物件反向轉換.

比如:

SQL> select reverse('123456') from dual;

REVERSE('123456')
-----------------
654321

[@more@]

由於這個函式,是針對資料庫內部儲存的物件編碼進行反轉的,

因此,在比如:數字,中文等.因為實現儲存的並不是直接編碼後的結果,而是經過某種內部轉換後實現的,因此,在轉換完成後,並不一定是自己想要的結果.示例:

SQL> select reverse(123456) ,reverse('中華人民共和國') from dual;

REVERSE(123456) REVERSE('中華人民共和國')
--------------- -------------------------
-668706000000 ?禿補衩巳?兄

在這個地方,一個整數,一箇中文內容,就被轉換為其它的內容了.

我們dump看看,就明白oracle是如何reverse了

SQL> select reverse(123456),dump(123456),dump(reverse(123456)) from dual;

REVERSE(123456) DUMP(123456) DUMP(REVERSE(123456))
--------------- ------------------------- -------------------------
-668706000000 Typ=2 Len=4: 195,13,35,57 Typ=2 Len=4: 57,35,13,195

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/197458/viewspace-1019100/,如需轉載,請註明出處,否則將追究法律責任。

相關文章