UTL_ENCODE内置包提供了一组进行数据编解码的函数,方便数据在不同主机之间的传输。
UTL_ENCODE子程序总览
子程序 | 描述 |
BASE64_DECODE Function | 读取BASE64编码的RAW类型输入数据,并将其解码为原始的RAW类型数据。 |
BASE64_ENCODE Function | 读取RAW类型的输入数据,将其编码为BASE64符号序列并返回对应的RAW类型数据。 |
MIMEHEADER_DECODE Function | 解码MIMEHEADER格式的VARCHAR2字符串。 |
MIMEHEADER_ENCODE Function | 将字符串编码为MIMEHEADER格式。 |
QUOTED_PRINTABLE_DECODE Function | 读取RAW类型的QUOTED_PRINTABLE格式输入,并解码为对应的RAW类型数据。 |
QUOTED_PRINTABLE_ENCODE Function | 读取RAW类型的QUOTED_PRINTABLE格式输入,并编码为对应的RAW类型数据。 |
TEXT_DECODE Function | 根据字符集以及解码方式解码字符串。 |
TEXT_ENCODE Function | 根据字符集以及编码方式编码字符串。 |
UUDECODE Function | 读取RAW类型的UUENCODE格式编码内容,并解码为对应的RAW类型数据。 |
UUENCODE Function | 读取RAW类型的输入,并将其编码为对应的UUENCODE格式的RAW类型数据。 |
BASE64_DECODE
该函数读取BASE64编码的RAW类型输入,并将其解码为原始的RAW类型数据。
语法
UTL_ENCODE.BASE64_DECODE (
r IN RAW)
RETURN RAW;
参数说明
参数 | 描述 |
r | BASE64编码的RAW类型数据。没有默认值或可选参数。 |
返回值
返回值 | 描述 |
RAW | 解码后的RAW类型数据。 |
示例
该示例展示了如何将BASE64的编码数据解码为对应的RAW类型数据。
select utl_encode.base64_decode(utl_encode.base64_encode('base64encoding'::raw));
base64_decode
----------------------------
\x626173653634656e636f64696e67
(1 row)
BASE64_ENCODE
该函数读取RAW类型的输入,将其编码为BASE64符号序列并返回对应的RAW类型数据。
语法
UTL_ENCODE.BASE64_ENCODE (
r IN RAW)
RETURN RAW;
参数说明
参数 | 描述 |
r | 需要进行编码的RAW类型数据。没有默认值或可选参数。 |
返回值
返回值 | 描述 |
RAW | 编码后的RAW类型数据。 |
示例
该示例展示了如何将输入的数据编码为BASE64格式的RAW类型数据。
select utl_encode.base64_encode('base64encoding'::raw);
base64_encode
------------------------------------
\x596d467a5a5459305a57356a62325270626d633d
(1 row)
MIMEHEADER_DECODE
该函数将一个MIMEHEADER格式的输入字符串解码为原始字符串。
语法
UTL_ENCODE.MIMEHEADER_DECODE (
buf IN VARCHAR2)
RETURN VARCHAR2;
参数说明
参数 | 描述 |
buf | MIMEHEADER格式的编码字符串。 |
返回值
返回值 | 描述 |
VARCHAR2 | 解码字符串结果。 |
示例
该示例展示了如何将输入的MIMEHEADER格式的数据进行解码。
select utl_encode.mimeheader_decode('=?UTF8?Q?mimeheaderencoding?=');
mimeheader_decode
--------------------
mimeheaderencoding
(1 row)
MIMEHEADER_ENCODE
该函数将输入字符串编码为MIMEHEADER格式的字符串。
语法
UTL_ENCODE.MIMEHEADER_ENCODE (
buf IN VARCHAR2,
encode_charset IN VARCHAR2 DEFAULT NULL,
encoding IN INTEGER DEFAULT NULL)
RETURN VARCHAR2;
参数说明
参数 | 描述 |
buf | 待编码数据。 |
encode_charset | 目标字符集。 |
encoding | 编码格式。取值如下:
|
返回值
返回值 | 描述 |
VARCHAR2 | 编码字符串结果。 |
示例
该示例展示了如何将输入字符串编码为MIMEHEADER格式的数据。
select utl_encode.mimeheader_encode('mimeheaderencoding');
mimeheader_encode
-------------------------------
=?UTF8?Q?mimeheaderencoding?=
(1 row)
QUOTED_PRINTABLE_DECODE
该函数读取RAW类型的QUOTED_PRINTABLE格式输入,并解码为对应的RAW类型数据。
语法
UTL_ENCODE.QUOTED_PRINTABLE_DECODE (
r IN RAW)
RETURN RAW;
参数说明
参数 | 描述 |
r | QUOTED_PRINTABLE格式的RAW类型数据。没有默认值或可选参数。 |
返回值
返回值 | 描述 |
RAW | 解码后的RAW类型数据。 |
示例
该示例展示了如何将QUOTED_PRINTABLE格式的数据解码为对应的原始值的RAW类型数据。
select utl_encode.quoted_printable_decode(utl_encode.quoted_printable_encode('quoted_printable'::raw));
quoted_printable_decode
------------------------------------
\x71756f7465645f7072696e7461626c65
(1 row)
QUOTED_PRINTABLE_ENCODE
该函数读取RAW类型的输入,并编码为对应的QUOTED_PRINTABLE格式的RAW类型数据。
语法
UTL_ENCODE.QUOTED_PRINTABLE_ENCODE (
r IN RAW)
RETURN RAW;
参数说明
参数 | 描述 |
r | 输入的RAW类型数据。没有默认值或可选参数。 |
返回值
返回值 | 描述 |
RAW | 编码后的RAW类型的数据。 |
示例
该示例展示了如何将输入数据编码为QUOTED_PRINTABLE格式的RAW类型数据。
select utl_encode.quoted_printable_encode('quoted_printable'::raw);
quoted_printable_encode
------------------------------------
\x71756f7465645f7072696e7461626c65
(1 row)
TEXT_DECODE
该函数将输入数据通过指定的编码方式和字符集进行解码。
语法
UTL_ENCODE.TEXT_DECODE(
buf IN VARCHAR2,
encode_charset IN VARCHAR2 DEFAULT NULL,
encoding IN PLS_INTEGER DEFAULT NULL)
RETURN VARCHAR2;
参数说明
参数 | 描述 |
buf | 待解码数据。 |
encode_charset | 目标字符集。 |
encoding | 输入数据的编码格式。取值如下:
|
返回值
返回值 | 描述 |
VARCHAR2 | 解码字符串结果。 |
示例
该示例展示了如何将通过对应的编码函数得到的数据进行解码。
select utl_encode.text_decode('text encoding test=3D');
text_decode
---------------------
text encoding test=
(1 row)
TEXT_ENCODE
该函数将输入的数据编码为对应字符集上的输出。
语法
UTL_ENCODE.TEXT_ENCODE (
buf IN VARCHAR2,
encode_charset IN VARCHAR2 DEFAULT NULL,
encoding IN INTEGER DEFAULT NULL)
RETURN VARCHAR2;
参数说明
参数 | 描述 |
buf | 待编码数据。 |
encode_charset | 目标字符集。 |
encoding | 输入数据的编码格式。取值如下:
|
返回值
返回值 | 描述 |
VARCHAR2 | 编码结果。 |
示例
该示例展示了如何将输入转换到指定的字符集并进行编码。
select utl_encode.text_encode('text encoding test=');
text_encode
-----------------------
text encoding test=3D
(1 row)
UUDECODE
该函数读取RAW类型的UUENCODE格式编码内容并解码为对应的RAW类型数据。
语法
UTL_ENCODE.UUDECODE (
r IN RAW)
RETURN RAW;
参数说明
参数 | 描述 |
r | UUENCODE格式的RAW类型数据。没有默认值或可选参数。 |
返回值
返回值 | 描述 |
RAW | 解码后的RAW类型的数据。 |
示例
该示例展示了如何将一个UUENCODE的编码结果进行解码
select utl_encode.uudecode(utl_encode.uuencode('uuencode test'));
uudecode
------------------------------
\x7575656e636f64652074657374
(1 row)
UUENCODE
该函数将输入数据的RAW类型表示编码为对应的UUENCODE格式的RAW类型数据。
语法
UTL_ENCODE.UUENCODE (
r IN RAW,
type IN INTEGER DEFAULT 1,
filename IN VARCHAR2 DEFAULT NULL,
permission IN VARCHAR2 DEFAULT NULL) RETURN RAW;
参数说明
参数 | 描述 |
r | 输入的RAW类型数据。 |
type | (可选参数)包含UUENCODE输出格式的数值类型参数,默认值是 1,表示完整的输出格式。 |
filename | (可选参数)包含UUENCODE文件名的参数,默认值是 |
permission | (可选参数)包含权限信息的VARCHAR2类型参数,默认值是 |
返回值
返回值 | 描述 |
RAW | 输入的RAW类型数据。 |
示例
该示例展示了如何将输入的数据编码为UUENCODE格式。
select utl_encode.uuencode('uuencode test');
uuencode
------------------------------------------------------------------------------------------------------
\x626567696e2030207575656e636f64652e7478740d0a323d3735453b462d4f392634403d2635533d2020200d0a0a656e64
(1 row)