UTL_I18N是一组由ESCAPE_REFERENCE和UNESCAPE_REFERENCE函数组成的服务,可以为PL/SQL编写的应用程序提供附加的全球化功能。

ESCAPE_REFERENCE

语法
UTL_I18N.ESCAPE_REFERENCE(
    str            IN VARCHAR2 CHARACTER SET ANY_CS,
    page_cs_name   IN VARCHAR2 DEFAULT NULL)
 RETURN VARCHAR2 CHARACTER SET str%CHARSET;
参数
参数名称 描述
str 需要转义的字符串。
page_cs_name 指定文档的字符集。
描述
此函数将文本字符串转换为与当前文档使用的字符集不同的字符参考副本。字符引用主要用于HTML和XML文档中,以独立于文档的编码表示字符。字符引用可以两种形式出现,数字字符引用和字符实体引用。

支持的字符集如下:

  • SQL_ASCII
  • UTF8
  • EUC_CN
  • GB18030
  • ISO_8859_5
  • LATIN1
示例
-- ESCAPE_REFERENCE
select UTL_I18N.ESCAPE_REFERENCE('hello < '||chr(229),'sql_ascii');
 escape_reference  
-------------------
 hello &lt; &#xe5;
(1 row)

UNESCAPE_REFERENCE

语法
UTL_I18N.UNESCAPE_REFERENCE ( 
   str IN VARCHAR2 CHARACTER SET ANY_CS)
 RETURN VARCHAR2 CHARACTER SET str%CHARSET;
参数
参数名称 描述
str 需要反转义的字符串。
描述
此函数从包含字符引用的输入字符串中返回一个字符串。 它将每个字符参考解码为相应的字符值。
示例
-- UNESCAPE_REFERENCE
select UTL_I18N.UNESCAPE_REFERENCE('hello &lt; &#xe5;');
 unescape_reference 
--------------------
 hello < å
(1 row)