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




二、示例


SQL> select dump('abc') from dual;




DUMP('ABC')


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


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




SQL> select dump('abc',16) from dual;




DUMP('ABC',16)


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


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




SQL> select dump('abc',1016) from dual;

DUMP('ABC',1016)
--------------------------------------------
Typ=96 Len=3 CharacterSet=ZHS16GBK: 61,62,63



SQL> 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=4 CharacterSet=ZHS16GBK: 182,224,182,224



3、 Value


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


举例证明:


SQL> select dump('a=?5') from dual;




DUMP('A=?5')


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


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




SQL> select chr(97),chr(61),chr(63),chr(53) from dual;




C C C C


- - - -


a = ? 5




SQL> select ascii('a'),ascii('='),ascii('?'),ascii('5') from dual;




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


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


        97         61         63         53

ASCII码表:

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

0

NUT

32

(space)

64

@

96

1

SOH

33

65

A

97

a

2

STX

34

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

,

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

X

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

/

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

~

31

US

63

?

95

127

DEL

对于数字的存储,不像字符那么简单,而是应用Oracle自己的一个算法

================
补充
========================================================

oracle获取字符串长度函数length()和hengthb() :

1.lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节
2.length(string)计算string所占的字符长度:返回字符串的长度,单位是字符
3.对于单字节字符,LENGTHB和LENGTH是一样的.
4.如可以用length('string')=lengthb('string')判断字符串是否含有中文。

注:一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。

实例:


select length('箱') from dual      --返回1
select lengthb('箱') from dual    --返回2
select length('CC') from dual     --返回2
select lengthb('CC') from dual   --返回2

SQL> select length('箱') from dual;

LENGTH('箱')
------------
           1

SQL> select lengthb('箱') from dual;

LENGTHB('箱')
-------------
            2

SQL> select length('CC') from dual; 

LENGTH('CC')
------------
           2

SQL> select lengthb('CC') from dual;

LENGTHB('CC')
-------------

2

转自:http://blog.itpub.net/31397003/viewspace-2138878/

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

  1. Oracle ltrim() 函数用法

    Oracle ltrim() 函数用法 2015-03-21 20:42:40 Je_WangZhe 阅读数 8834更多 分类专栏: Oracle   版权声明:本文为博主原创文章,遵循CC 4.0 ...

  2. oracle trim函数用法详解

    在oracle数据库中,trim一般都是用在删除字符串两边的空格.实际上,trim也可以用来删除字符串两边的指定字符.并且trim指定删除的字符串只能是单个字符Oracle TRIM函数是很常见的函数 ...

  3. [转载]Oracle ltrim() 函数用法

    前面有说到过LPAD和RPAD这两个函数用法的文章,今天发现与之相反意义的另外两个函数,那就是LTRIM() RTRIM(). 这次就挑LTRIM() 这一函数来讲讲: 具体的语法格式如下: LTRI ...

  4. Oracle dump函数的用法

    一.函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个.当完全没有参数时,直接返回null.另外 ...

  5. [转]Oracle dbms_random函数用法快速生成多条测试数据

    Java 随机生成中文姓名,手机号,邮编,住址:http://blog.csdn.net/xiaokui_wingfly/article/details/45913885 Java 批量随机生成身份证 ...

  6. Oracle单行函数用法

    单行函数分为五种类型:字符函数.数值函数.日期函数.转换函数.通用函数. 1.字符函数: 对于输入的字符转换为需要转为的字符或数值. upper()大写 --小写字母转为大写字母 --对于表指定的字符 ...

  7. oracle decode函数用法

    DECODE函数是ORACLE PL/SQL是功能强大的函数之中的一个,眼下还仅仅有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一 ...

  8. oracle trunc函数用法

    转自:https://www.e-learn.cn/content/qita/699481 /**************日期********************/ select trunc(sy ...

  9. oracle wm_concat函数用法

    在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔.

随机推荐

  1. 熟悉ES6常规看这一篇就够了!

    尊重原创:转自https://www.jianshu.com/p/287e0bb867ae 刚开始用Vue或者React,很多时候我们都会把ES6+这位大兄dei加入我们的技术栈中.但是ES6+那么多 ...

  2. 【Django 字段和相关参数补充】

    字段类型: 1.models.AutoField 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的自定义一个自增列,必须将给列设置为主键primary _key=Tru ...

  3. 未雨绸缪,数据保护之NBU介质备份

    摘要:华为GaussDB目前已支持NBU介质的备份与恢复,本文主要描述了华为GaussDB数据库和NetBackup对接进行备份.恢复的配置方法与性能调优方法. 一.简介 企业要想避开自然灾难和站点中 ...

  4. Vue3 使用 svg-sprite-loader 实现 svg 图标按需加载

    前面文章有讲到 svg 图标按需加载的优势以及 Vue 如何使用 vue-svg-icon 实现 svg 图标按需载入: https://www.cnblogs.com/Leophen/p/13201 ...

  5. Redis 基础知识点总结

    关系型数据库 VS 非关系型数据库(NoSQL) 关系型数据库 我们过去使用的 mysql.Oracle 都属于关系型数据库.关系型数据库的特点是数据表之间可以存在联系,表内每列数据也存在关联,同时支 ...

  6. Spark性能调优篇二之重构RDD架构及RDD持久化

    如果一个RDD在两个地方用到,就持久化他.不然第二次用到他时,会再次计算. 直接调用cache()或者presist()方法对指定的RDD进行缓存(持久化)操作,同时在方法中指定缓存的策略. 原文:h ...

  7. C#爬虫,让你不再觉得神秘

    1.使用第三方类库 HtmlAgilityPack 官方网址:https://html-agility-pack.net/?z=codeplex. // From File 从文件获取html信息 v ...

  8. RabbitMQException com.rabbitmq.client.ShutdownSignalException: connection error; protocol meth

    异常1 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ...

  9. JMeter上传文件,并修改源码参数化Content-Disposition 的 filename

    一.JMeter上传文件 1.使用F12或抓包工具抓包对应接口 如下图为一个上传图片接口,抓包显示内容如下: 2.将抓包到的信息头内容填写到jmeter的HTTP信息头管理器 3.填写参数 由抓包的接 ...

  10. BPF的可移植性和CO-RE (Compile Once – Run Everywhere)

    BPF的可移植性和CO-RE (Compile Once – Run Everywhere) 在上一篇文章中介绍了提高socket性能的几个socket选项,其中给出了几个源于内核源码树中的例子,如果 ...