UTL_ENCODE

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

编码格式。取值如下:

  • UTL_ENCODE.BASE64

  • UTL_ENCODE.QUOTED_PRINTABLE

  • NULL

返回值

返回值

描述

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

输入数据的编码格式。取值如下:

  • UTL_ENCODE.BASE64

  • UTL_ENCODE.QUOTED_PRINTABLE

  • NULL

返回值

返回值

描述

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

输入数据的编码格式。取值如下:

  • UTL_ENCODE.BASE64

  • UTL_ENCODE.QUOTED_PRINTABLE

  • NULL

返回值

返回值

描述

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文件名的参数,默认值是uuencode.txt

permission

(可选参数)包含权限信息的VARCHAR2类型参数,默认值是0

返回值

返回值

描述

RAW

输入的RAW类型数据。

示例

该示例展示了如何将输入的数据编码为UUENCODE格式。

select utl_encode.uuencode('uuencode test');
                                               uuencode                                               
------------------------------------------------------------------------------------------------------
 \x626567696e2030207575656e636f64652e7478740d0a323d3735453b462d4f392634403d2635533d2020200d0a0a656e64
(1 row)