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

PolarDB:UTL_URL

最終更新日:Jun 05, 2024

UTL_URL パッケージは、URL 内の無効な文字および予約文字をエスケープするメソッドを提供します。

表1. HTTP関数とストアドプロシージャ
関数またはストアドプロシージャ戻り値タイプ説明
ESCAPE(url, escape_reserved_chars, url_charset)VARCHAR2ESCAPE関数は、URL内の無効文字と予約文字をエスケープします。
UNESCAPE(url, url_charset)VARCHAR2UNESCAPE関数は、URLを元の形式に変換します。
説明 関数の呼び出しに無効なURLが含まれている場合、UTL_URLパッケージはBAD_URL例外を返します。

ESCAPE

ESCAPE 関数は、URL 内の無効な文字および予約文字をエスケープします。

エスケープ (url VARCHAR2、escape_reserved_chars BOOLEAN、url_charset VARCHAR2)

予約文字は、パーセント記号 (%) で始まる 2 桁の 16 進コード (16 進数の値はエスケープ対象文字の ASCII 値) に置き換えられます。

Parameters

パラメーター説明
urlESCAPE関数を使用して変換するURLを指定します。
エスケープ予約済みの文字ESCAPE関数が予約文字と無効文字を変換するかどうかを指定します。 データ型: BOOLEAN。 デフォルト値は FALSE です。
  • escape_reserved_charsがFALSEに設定されている場合、ESCAPE関数は指定されたURLの無効な文字のみを変換します。
  • escape_reserved_charsがTRUEに設定されている場合、ESCAPE関数は指定されたURLの予約文字と無効な文字を変換します。

URLの有効な文字には、文字、数字、およびアスタリスク (*) 、感嘆符 (!) 、ハイフン (-) 、括弧 () 、ピリオド (.) 、アポストロフィ (') 、チルダ (~) 、アンダースコア (_) などの特殊文字が含まれます。

URLの一部に含まれる一部の文字は有効であると見なされ、他の部分の文字は無効であると見なされます。 詳細については、「RFC 2396」をご参照ください。 URLで無効と見なされる文字の例の詳細については、「無効な文字」をご参照ください。

ESCAPE関数で使用できる予約文字の詳細については、「予約文字」をご参照ください。 escape_reserved_charsがTRUEに設定されている場合、ESCAPE関数は予約文字を変換します。

url_charset指定された文字をエスケープする前に変換する文字セットを指定します。 デフォルトでは、url_charsetはISO-8859-1に設定されています。 url_charsetがNULLに設定されている場合、文字は置き換えられません。
表2. 無効な文字
無効な文字エスケープシーケンス
空白スペース ()%20
中括弧 ({ or })%7B および %7D
ハッシュマーク (#)%23
表3. 予約文字
予約済み文字エスケープシーケンス
アンパサンド (&)%26
アットサイン (@)%40
コロン (:)%3A
コンマ (,)%2C
ドル記号 ($)%24
等号 (=)%3D
プラス記号 (+)%2B
疑問符 (?)%3F
セミコロン (;)%3B
スラッシュ (/)%2F

次の匿名ブロックでは、ESCAPE 関数を使用して URL の空白がエスケープされます。

DECLARE
  結果varchar2(400);
開始
 result := UTL_URL.ESCAPE('http://www.example.com/Using the ESCAPE function.html');
  DBMS_OUTPUT.PUT_LINE (結果);
エンド; 

変換後のURLの例:

http://www.example.com/Using%20the%20ESCAPE%20function.html

ESCAPE関数を呼び出すときに、escape_reserved_charsをTRUEに設定すると、ESCAPE関数はURL内の予約済み文字と無効文字を変換します。

DECLARE
  結果varchar2(400);
開始
 result := UTL_URL.ESCAPE('http://www.example.com/Using the ESCAPE function.html', TRUE);
  DBMS_OUTPUT.PUT_LINE (結果);
END; 
同様の出力が表示されます:
http%3A%2F%2Fwww.example.com%2FUsing%20the%20ESCAPE%20function.html

UNESCAPE

UNESCAPE関数は、ESCAPE関数を使用してURLに追加された変換文字を削除し、URLが元の形式であることを確認するために使用されます。 構文:

UNESCAPE(url VARCHAR2、url_charset VARCHAR2)

パラメーター

パラメーター説明
urlUNESCAPE関数が変換するURLを指定します。
url_charset文字が変換された後、文字がurl_charsetを使用してエンコードされていると仮定すると、url_charset-encodedされた文字は、変換された文字が元の値に戻される前に、データベースエンコードによってエンコードされた文字に変換されます。 デフォルトでは、url charsetはISO-8 85 9-1に設定されています。 url_charsetがNULLに設定されている場合、文字は変換されません。

次の匿名ブロックでは、ESCAPE 関数を使用して URL の空白がエスケープされます。

DECLARE
  結果varchar2(400);
開始
 result := UTL_URL.UNESCAPE('http://www.example.com/Using%20the%20UNESCAPE%20function.html');
  DBMS_OUTPUT.PUT_LINE (結果);
エンド; 

変換後のURLの例:

http://www.example.com/Using UNESCAPE function.html