【函式】DUMP

liglewang發表於2011-10-16

語法:

DUMP(expr,[return_fmt,[start_position,[length]]])

expr指定各種型別的字串或者表列名,如果expr為空(null),則函式返回值為NULL

return_fmt引數指定返回值的格式,並且有下面幾個值可以使用:

8        返回八進位制值
10     
返回十進位制值
16     
返回十六進位制值
17     
返回單個字元

預設情況下,dump是不返回字符集的,如果需要返回字符集的話,在指定return_fmt時,需要加上1000。如:若需要返回8進位制值,則return_fmt需要寫成1008;若需要返回10進位制值,則return_fmt需要寫成1010等。

start_positionlength兩個引數共同決定返回internal representation中的那個部分的值,預設情況下是以十進位制返回整個internal representation

有一點需要注意:

This function does not support CLOB data directly.However,CLOBs can be passed in as arguments through implicit data conversion.

返回格式:

型別 長度]>,符號/指數位 [數字1,數字2,數字3......,數字20],如:
Typ=96 Len=6 CharacterSet=ZHS16GBK: 150,165,156,157,154,144

Examples:

1、返回字串ligle10進位制和16進位制值(16進位制值需要返回字符集):

SQL> select dump('ligle',10) from dual;
DUMP('LIGLE',10)
---------------------------------
Typ=96 Len=5: 108,105,103,108,101
SQL> select dump('ligle',1016) from dual;
DUMP('LIGLE',1016)
--------------------------------------------------
Typ=96 Len=5 CharacterSet=ZHS16GBK: 6c,69,67,6c,65

2、返回字串Ligle WANG的單個字元(sigle characters

SQL> select dump('Ligle WANG',17) from dual;
DUMP('LIGLEWANG',17)
----------------------------------
Typ=96 Len=10: L,i,g,l,e, ,W,A,N,G

Typ是型別,96表示CHAR,其他的還有:

0        VARCHAR2
1        NUMBER
8        LONG
12      DATE
23      RAW
24      LONG RAW
69      ROWID
96      CHAR
      

Len表示長度,就是該字元所佔的位元組數。

CharacterSet表示字符集。

符號/指數位

對於非漢字的字元,如英文字母,其即可認為是對應的ASCII碼值,而對於漢字的儲存,現在也不太清楚其機制。

對於number型別的儲存形式,可以參考eygle的文章(


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

相關文章