Oracle DUMP() 函数使用指南
Oracle DUMP() 是一个内置函数,它返回一个 VARCHAR2 值,其中包含 expr 的数据类型代码、字节长度和内部表示。
Oracle DUMP() 语法
这里是 Oracle DUMP() 函数的语法:
DUMP(expr[, return_fmt [, start_position [, length ] ] ])
参数
- expr
- 
必需的。 
- return_fmt
- 
可选的。它指定返回值的格式,可以是以下值的其中之一: 
- 8返回八进制表示的结果。
- 10返回十进制表示的结果。它是默认的。
- 16返回十六进制表示的结果。
- 17返回每个字节的字符形式,仅当它在编译器的字符集中可以解释为可打印字符(通常为 ASCII 或 EBCDIC)时才会这样做。一些 ASCII 控制字符可能会以 ^X 的形式打印。否则,字符将以十六进制表示。所有 NLS 参数都会被忽略。不要依赖于带有- return_fmt17 的- DUMP的任何特定输出格式。
- start_position
- 
可选的。它指定了子字符串的起始位置。从 1 开始。 
- length
- 
可选的。它指定了字符串的长度。如果省略此参数,则子字符串一直到字符串最后。 
参数 start_position 和 length 组合确定要返回的内部表示的哪个部分。默认情况下,以十进制表示返回整个内部表示。
返回值
Oracle DUMP() 函数返回一个 VARCHAR2 值,其中包含 expr 的数据类型代码、字节长度和内部表示。
DUMP() 的返回值始终使用数据库字符集。
默认情况下,返回值不包含字符集信息。要检索 expr 的字符集名称,请在任何前面的格式值上加上 1000。例如,return_fmt 为 1008 返回八进制表示的结果并提供 expr 的字符集名称。
如果 expr 为空,则该函数返回 NULL。
如果任意一个参数为 NULL, DUMP() 将返回 NULL。
Oracle DUMP() 示例
这里有几个展示了 Oracle DUMP() 函数用法的示例。
基本用法
这是一个展示 Oracle DUMP() 函数基本用法的示例:
SELECT
    DUMP('ABC')
FROM dual;
输出:
DUMP('ABC')
_________________________
Typ=96 Len=3: 65,66,67返回值格式
Oracle DUMP() 函数允许您指定返回值的格式。 下面的语句指定格式参数为 8 以返回八进制表示的结果:
SELECT
    DUMP('ABC', 8)
FROM dual;
输出:
DUMP('ABC',8)
____________________________
Typ=96 Len=3: 101,102,103下面的语句指定格式参数为 10 以返回十进制表示的结果,这也是此参数的默认值:
SELECT
    DUMP('ABC', 10),
    DUMP('ABC')
FROM dual;
输出:
DUMP('ABC',10)            DUMP('ABC')
_________________________ _________________________
Typ=96 Len=3: 65,66,67    Typ=96 Len=3: 65,66,67下面的语句指定格式参数为 16 以返回十六进制表示的结果:
SELECT
    DUMP('ABC', 16)
FROM dual;
输出:
DUMP('ABC',16)
_________________________
Typ=96 Len=3: 41,42,43子字符串
Oracle DUMP() 函数允许您获取子字符串的内部表示。本示例返回了第一个字母的内部表示:
SELECT
    DUMP('ABC', 10, 1, 1),
    DUMP('ABC')
FROM dual;
输出:
DUMP('ABC',10)            DUMP('ABC')
_________________________ _________________________
Typ=96 Len=3: 65,66,67    Typ=96 Len=3: 65,66,67本示例获取从第二个字符开始的剩余字符组成的子字符串的内部表示:
SELECT
    DUMP('ABC', 10, 2),
    DUMP('ABC')
FROM dual;
输出:
DUMP('ABC',10,2)       DUMP('ABC')
______________________ _________________________
Typ=96 Len=3: 66,67    Typ=96 Len=3: 65,66,67字符集
Oracle DUMP() 函数允许获取字符集。要获取参数的字符集,请在返回格式的值加上 1000,比如: 1008, 1010, 1016, 和 1017.
下面的语句返回字符集和十进制的表示结果:
SELECT
    DUMP('ABC', 1010)
FROM dual;
输出:
DUMP('ABC',1010)
_______________________________________________
Typ=96 Len=3 CharacterSet=AL32UTF8: 65,66,67下面的语句返回字符集和十六进制的表示结果:
SELECT
    DUMP('ABC', 1016)
FROM dual;
输出:
DUMP('ABC',1016)
_______________________________________________
Typ=96 Len=3 CharacterSet=AL32UTF8: 41,42,43NULL 参数
如果任意一个参数为 NULL, DUMP() 将返回 NULL。
SET NULL 'NULL';
SELECT
    DUMP(NULL) NULL_1,
    DUMP(NULL, NULL) NULL_2,
    DUMP(NULL, NULL, NULL) NULL_3,
    DUMP(NULL, NULL, NULL, NULL) NULL_4
FROM dual;
输出:
NULL_1    NULL_2    NULL_3    NULL_4
_________ _________ _________ _________
NULL      NULL      NULL      NULL在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。
结论
Oracle DUMP() 是一个内置函数,它返回一个 VARCHAR2 值,其中包含 expr 的数据类型代码、字节长度和内部表示。