oracle的dump可以删除吗,【Oracle】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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值