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



二、示例


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


SYS@ora11g > select dump(94082000000000000,16)  from dual;


DUMP(94082000000000000,
-----------------------
Typ=2 Len=4: c9,a,29,53


SYS@ora11g > select dump(94082000000000000654,16)  from dual;


DUMP(94082000000000000654,16)
---------------------------------------
Typ=2 Len=11: ca,5f,9,15,1,1,1,1,1,7,37



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


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自己的一个算法。


©著作权归作者所有:来自51CTO博客作者小麦苗DB宝的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. JavaScript:留言板添加字数实时统计与禁止超出功能,部分字符串和
  2. PKG_COLLECTION_LHR 存储过程或函数返回集合类型
  3. 【论文解读】LGN: 基于词典构建的中文NER图神经网络
  4. 0407作业-留言板、字符串和数组的常用方法
  5. Java过滤任意(script,html,style)标签符,返回纯文本--封装类
  6. 课程学习记录之python简单库和正则
  7. 第 83 天:NumPy 字符串操作
  8. js之留言板与数组字符串函数
  9. 【JS基础入门】JavaScript基础之事件的操作详解及字符串数组常用

随机推荐

  1. centos设置mysql root密码
  2. MySQLWorkbench 创建E-R图步骤
  3. 按多列排序行选择
  4. mysql中插入中文时显示乱码
  5. org.hibernate.hql.internal.ast.QuerySy
  6. mysql数据库连接查询
  7. Mysql 数据分页处理(Node.js的实现)
  8. linux 下怎么安装MySql
  9. mysql-ubuntu卸载安装mysql
  10. MySQL数据目录结构