Oracle dump函数的用法
一、函数标准格式: 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 2、len len表示该值所占用的字节数。 对于汉字,ZHS16GBK编码一个汉字需要2个字节,UTF8需要3个字节。 SQL> select dump(‘多多‘,1010) from dual; DUMP(‘多多‘,1010) SQL> select dump(‘多多‘,1010) 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 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |