一、函数标准格式:

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

Oracle dump函数的用法的更多相关文章

  1. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  2. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

  3. oracle获取本月第一天和最后一天及Oracle trunc()函数的用法

    select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_cha ...

  4. Oracle trunc()函数的用法--来着心静禅定ing

    1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指 ...

  5. Oracle trunc()函数的用法及四舍五入 round函数

    --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual  --2011 ...

  6. [转]Oracle trunc()函数的用法

    原文地址:http://www.cnblogs.com/gengaixue/archive/2012/11/21/2781037.html 1.TRUNC(for dates) TRUNC函数为指定元 ...

  7. Oracle to_date()函数的用法介绍

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下     在Oracle数据库中,Oracle t ...

  8. Oracle to_date()函数的用法《转载》

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明, 原文地址:http://database.51cto.com/art ...

  9. oracle add_months函数的用法详解

    如果需要取上一个月的数据,并且每天都要进行此操作,每次都需要改时间,的确非常的麻烦,所以想到了oracle add_months函数这个函数 oracle add_months函数: oracle a ...

随机推荐

  1. 【转】Selenium-WebDriverApi接口详解

    浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() 获取标签元素 # 通过ID定位目标元素 driver.find ...

  2. 123457---小小数学家--com.twoapp.xiaoxiaoshuxuejia

    小小数学家--com.twoapp.xiaoxiaoshuxuejia

  3. Release报错Debug无错

    代码在Release模式下会crash,Debug模式下可以运行,最后定位到原因 for (size_t j = 0; j < ids.size()-1; ++j) { } 发现问题是Relea ...

  4. k8s常可能问的问题

    k8s常可能问的问题 1.为什么要用k8s 自我修复.pod水平自动伸缩.密钥和配置管理动态对应用进行扩容.缩容 服务发现.负载均衡 1.1.自我修复 比如误删pod后会自动创建,用 kind: Re ...

  5. DB2函数简单示例

    DB2中的函数原理同其他编程语言中的函数,均为输入几个参数,同时返回一个值. 下面的例子演示一个寻找某一次考试中成绩最好的学生的姓名. 首先,我们新建一个表SCORE用于表示考试,并插入几条数据: D ...

  6. 手写C++代码实现POST传输数据

    char *pHttpPost = "POST %s HTTP/1.1\r\n" "Host: %s:%d\r\n" "Content-Type: a ...

  7. Spring Aop(十六)——编程式的自定义Advisor

    转发:https://www.iteye.com/blog/elim-2399437 https://www.iteye.com/blogs/subjects/springaop 编程式的自定义Adv ...

  8. [转载]Oracle触发器用法实例详解

    本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用,也 ...

  9. 分布式架构下,session共享有什么方案么?

    分布式架构下,session共享有什么方案么? 会点代码的大叔 科技领域创作者 分布式架构下的session共享,也可以称作分布式session一致性:关于这个问题,和大家说一说解决方案(如果有其他的 ...

  10. 关于Basic Latin踩到的一些坑

    目录 在wiki中,很多语言的字符集都包含了Basic Latin,一开始我没有细看,以为Basic Latin里面都是正常的字符集,后来在线上环境出现了问题 博主某天接到一个需求,需要过滤出某国语言 ...