すべてのプロダクト
Search
ドキュメントセンター

PolarDB:, ,

最終更新日:Jan 03, 2025

UTL_URLパッケージを使用して、URL (Uniform Resource Locators) を処理および管理できます。 このトピックでは、UTL_URLパッケージを使用してURLをエンコードおよびデコードする方法について説明します。

前提条件

PolarDB for PostgreSQL (Compatible with Oracle) クラスターは、次のデータベースエンジンバージョンを実行します。

PolarDB for PostgreSQL (Oracle互換) 2.0 (バージョン2.0.14.27.0以降)

説明

次のステートメントを実行して、PolarDB for PostgreSQL (Compatible with Oracle) クラスターのデータベースエンジンのリビジョンバージョンを照会できます。

SHOW polar_version; 

UTL_URLパッケージの関数

関数

説明

エスケープ関数

URL内の特殊文字をエスケープしてURLをエンコードします。 各特殊文字は、文字のASCIIコードを表す2つの16進数字が続くパーセント記号 (%) に置き換えられます。

UNESCAPE関数

URLを元の形式にデコードします。

エスケープ関数

この関数は、URL内の各特殊文字をパーセント記号 (%) に変換し、その後に文字のASCIIコードを表す2つの16進数字が続きます。

構文

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

Parameters

パラメーター

説明

url

エンコードするURL。

escape_reserved_chars

URLで予約文字をエンコードするかどうかを指定します。 デフォルト値: "false"

説明

URL内の文字は、次のタイプに分類されます。

  • 非予約文字: a-z 0-9 - _をA-Zます。 ! ~ * ' ()

  • 予約文字:; / ? : @ & = + $ , []

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関数

この関数は、エンコードされたURLを元の形式にデコードします。

構文

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

Parameters

パラメーター

説明

url

デコードするURL。

url_charset

URLの文字セット。 デフォルト値は NULL です。

特殊文字を含むURLをエンコードし、その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/数据库