UTL_URL

UTL_URL包用于处理和操作统一资源定位符(即URL,Uniform Resource Locator),编码和解码URL。

前提条件

支持的PolarDB PostgreSQL版(兼容Oracle)的版本如下:

Oracle语法兼容 2.0(内核小版本2.0.14.27.0及以上)

说明

您可通过如下语句查看PolarDB PostgreSQL版(兼容Oracle)的内核小版本号:

SHOW polar_version; 

UTL_URL子程序总览

子程序

说明

ESCAPE Function

用于编码URL,将URL中的特殊字符进行转义,使用百分号加两位十六进制数字表示。

UNESCAPE Function

用于解码URL,将编码后的URL解码为原始URL。

ESCAPE Function

该函数将输入的URL中的特殊字符进行转义,使用百分号加两位十六进制数字表示。

语法

FUNCTION escape(url                     in varchar2,
                escape_reserved_chars   in boolean default false,
                url_charset             in varchar2 default null)
RETURN varchar2;

参数说明

参数

说明

url

待编码的URL。

escape_reserved_chars

是否编码URL中的保留字符,默认值为false

说明

URL中的字符分为以下两种:

  • 非保留字符:A-Z a-z 0-9 -_.!~*'()

  • 保留字符:;/?:@&=+$,[]

url_charset

URL字符集,默认值为NULL。

示例

此处展示了如何对包含特殊字符的URL进行编码。

DECLARE
    res varchar2;
BEGIN
    res := utl_url.escape(url => 'https://www.aliyun.com/数据库',
                          escape_reserved_chars => false,
                          url_charset => 'utf8');
    dbms_output.put_line(res);
END;

返回结果如下:

https://www.aliyun.com/%E6%95%B0%E6%8D%AE%E5%BA%93

UNESCAPE Function

该函数用于将编码后的URL解码为原始的URL。

语法

FUNCTION unescape(url           in varchar2,
                  url_charset   in varchar2 default null)
RETURN varchar2;

参数说明

参数

说明

url

待解码的URL。

url_charset

URL字符集,默认值为NULL。

示例

此处展示了如何将包含特殊字符的URL编码后再次进行解码。

DECLARE
    res varchar2;
BEGIN
    res := utl_url.escape(url => 'https://www.aliyun.com/数据库',
                          escape_reserved_chars => false,
                          url_charset => 'utf8');
    dbms_output.put_line('URL after escape:' || res);
    res := utl_url.unescape(url => res,
                            url_charset => 'utf8');
    dbms_output.put_line('URL after unescape:' || res);
END;

返回结果如下:

URL after escape:https://www.aliyun.com/%E6%95%B0%E6%8D%AE%E5%BA%93
URL after unescape:https://www.aliyun.com/数据库