zoukankan      html  css  js  c++  java
  • ORAdump函数

    一、函数标准格式:

     DUMP(expr[,return_fmt[,start_position][,length]])

    基本参数时4个,最少可以填的参数是0个。当完全没有参数时,直接返回null。另外3个参数也都有各自的默认值:

    expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)

    return_fmt:指返回参数的格式,有5种用法:

              18:以8进制返回结果的值

              210:以10进制返回结果的值(默认)

              316:以16进制返回结果的值

              417:以单字符的形式返回结果的值

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



    from:
    http://space.itpub.net/25744374/viewspace-723192

  • 相关阅读:
    五角星评分小例子
    手风琴案列
    隔行变色
    全选和单选(有一个单选没有打钩,全选也自动不打钩)
    随机数封装
    数组的升降序排列
    js面向对象倒计时与文字左右滚动
    linux知识点总结与随笔(关注linux爱好者公众号的一些笔记)
    线程与进程(我的理解)
    @property在python类中的应用
  • 原文地址:https://www.cnblogs.com/blogabc/p/3069050.html
Copyright © 2011-2022 走看看