【函数】DUMP

语法:

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的文章(How Oracle Store Number internal?


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25834554/viewspace-709194/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25834554/viewspace-709194/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值