一、函数标准格式:

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:需要返回的字符长度

二、示例

SYS@ tsid> select dump('abc') from dual;

DUMP('ABC')

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

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

SYS@ tsid> select dump('abc',16) from dual;

DUMP('ABC',16)

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

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

SYS@ tsid> select dump('abc',1016) from dual;

DUMP('ABC',1016)

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

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

SYS@ tsid> select dump('abc',17,2,2) from dual;

DUMP('ABC',17,2,2

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

Typ=96 Len=3: b,c

结果的格式一般都是类似:Typ=96 Len=3 [CharacterSet=ZHS16GBK]: 61,62,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,164,154

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

DUMP('多多',1010)
---------------------------------------------------
Typ=96 Len=4 CharacterSet=ZHS16GBK: 182,224,182,224

3、 Value

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

SYS@ tsid > select dump('a=?5') from dual;

DUMP('A=?5')

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

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

SYS@ tsid > select chr(97),chr(61),chr(63),chr(53) from dual;

C C C C

- - - -

a = ? 5

SYS@ tsid > select ascii('a'),ascii('='),ascii('?'),ascii('5') from dual;

ASCII('A') ASCII('=') ASCII('?') ASCII('5')

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

97         61         63         53

最新文章

  1. Red Hat Enterprise Linux 各个版本以及发布日期
  2. Java的日期工具类
  3. smartroute简单集成集群聊天通讯
  4. 「ruby」使用rmagick处理图像
  5. iOS 用命令实现简单的打包过程
  6. android MIPI屏 导航栏丢失
  7. java 启用新线程异步调用
  8. go语言的安装和配置,以及包引用
  9. [BZOJ4291] [PA2015] Kieszonkowe
  10. java1.8版本的HashMap源码剖析
  11. markdown 基本操作
  12. 基于CentOS7系统部署cobbler批量安装系统(week3_day5_part1)-技术流ken
  13. 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
  14. Linux命令之sftp - 安全文件传输命令行工具
  15. Day 5内存管理,定义变量
  16. Tajima's D
  17. 【LeetCode每天一题】Spiral Matrix II(螺旋数组II)
  18. What Would you Find out about MS908CV ?
  19. 关于移动端rem适配
  20. UOJ 117 欧拉回路(套圈法+欧拉回路路径输出+骚操作)

热门文章

  1. Codeforces 893F(主席树+dfs序)
  2. AtCoder Grand Contest 005
  3. 51nod 1218 最长递增子序列 | 思维题
  4. java 面试题 -- 线程 按序 交替
  5. 【bug】Could not find method compile() 解决
  6. 《剑指offer》— JavaScript(15)反转链表
  7. Lnmp上安装Yaf学习(一)
  8. mac go2shell 安裝
  9. Centos下Vim编辑器基本配置
  10. 使用tkinter做简单计算器