加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 百科 > 正文

Oracle dump函数的用法

发布时间:2021-01-11 18:50:15 所属栏目:百科 来源:网络整理
导读:一、函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值: expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型

一、函数标准格式:

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

基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:

expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)

return_fmt:指返回参数的格式,有5种用法:

????????? 1)8:以8进制返回结果的值

????????? 2)10:以10进制返回结果的值(默认)

????????? 3)16:以16进制返回结果的值

????????? 4)17:以单字符的形式返回结果的值

????????? 5)1000:以上4种加上1000,表示在返回值中加上当前字符集

start_position:开始进行返回的字符位置

length:需要返回的字符长度

二、示例

[email?protected] tsid> select dump(‘abc‘) from dual;

DUMP(‘ABC‘)

----------------------

Typ=96 Len=3: 97,98,99

[email?protected] tsid> select dump(‘abc‘,16) from dual;

DUMP(‘ABC‘,16)

----------------------

Typ=96 Len=3: 61,62,63

[email?protected] tsid> select dump(‘abc‘,1016) from dual;

DUMP(‘ABC‘,1016)

--------------------------------------------

Typ=96 Len=3 CharacterSet=ZHS16GBK: 61,63

[email?protected] tsid> select dump(‘abc‘,17,2,2) from dual;

DUMP(‘ABC‘,2

-----------------

Typ=96 Len=3: b,c

结果的格式一般都是类似:Typ=96 Len=3 [CharacterSet=ZHS16GBK]: 61,63

1、type

typ表示当前的expr值的类型。如:2表示NUMBER,96表示CHAR。

CODE TYP
----- ------------------------------
1????? VARCHAR2
2????? NUMBER
8????? LONG
12???? DATE
23???? RAW
24???? LONG RAW
69???? ROWID
96???? CHAR
112??? CLOB
113??? BLOB
114??? BFILE
180??? TIMESTAMP
181??? TIMESTAMP WITH TIMEZONE
182??? INTERVAL YEAR TO MONTH
183??? INTERVAL DAY TO SECOND
208??? UROWID
231??? TIMESTAMP WITH LOCAL TIMEZONE

2、len

len表示该值所占用的字节数。

对于汉字,ZHS16GBK编码一个汉字需要2个字节,UTF8需要3个字节。

SQL> select dump(‘多多‘,1010) from dual;

DUMP(‘多多‘,1010)
-------------------------------------------------------
Typ=96 Len=6 CharacterSet=UTF8: 229,164,154,229,154

SQL> select dump(‘多多‘,1010)
---------------------------------------------------
Typ=96 Len=4 CharacterSet=ZHS16GBK: 182,224,182,224

3、 Value

具体的存储值。返回的数值就是Oracle在自己内部对前面的这个expr值得存储形式。对于非汉字的普通字符串,可以理解为就是它的ASCII码。举例证明:

[email?protected] tsid > select dump(‘a=?5‘) from dual;

DUMP(‘A=?5‘)

-------------------------

Typ=96 Len=4: 97,61,63,53

[email?protected] tsid > select chr(97),chr(61),chr(63),chr(53) from dual;

C C C C

- - - -

a = ? 5

[email?protected] tsid > select ascii(‘a‘),ascii(‘=‘),ascii(‘?‘),ascii(‘5‘) from dual;

ASCII(‘A‘) ASCII(‘=‘) ASCII(‘?‘) ASCII(‘5‘)

---------- ---------- ---------- ----------

??????? 97???????? 61???????? 63???????? 53

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读