UTL_URL パッケージは、URL 内の無効な文字および予約文字をエスケープするメソッドを提供します。
関数またはストアドプロシージャ | 戻り値タイプ | 説明 |
ESCAPE(url, escape_reserved_chars, url_charset) | VARCHAR2 | ESCAPE関数は、URL内の無効文字と予約文字をエスケープします。 |
UNESCAPE(url, url_charset) | VARCHAR2 | UNESCAPE関数は、URLを元の形式に変換します。 |
ESCAPE
ESCAPE 関数は、URL 内の無効な文字および予約文字をエスケープします。
エスケープ (url VARCHAR2、escape_reserved_chars BOOLEAN、url_charset VARCHAR2)
予約文字は、パーセント記号 (%) で始まる 2 桁の 16 進コード (16 進数の値はエスケープ対象文字の ASCII 値) に置き換えられます。
Parameters
パラメーター | 説明 |
url | ESCAPE関数を使用して変換するURLを指定します。 |
エスケープ予約済みの文字 | ESCAPE関数が予約文字と無効文字を変換するかどうかを指定します。 データ型: BOOLEAN。 デフォルト値は FALSE です。
URLの有効な文字には、文字、数字、およびアスタリスク (*) 、感嘆符 (!) 、ハイフン (-) 、括弧 () 、ピリオド (.) 、アポストロフィ (') 、チルダ (~) 、アンダースコア (_) などの特殊文字が含まれます。 URLの一部に含まれる一部の文字は有効であると見なされ、他の部分の文字は無効であると見なされます。 詳細については、「RFC 2396」をご参照ください。 URLで無効と見なされる文字の例の詳細については、「無効な文字」をご参照ください。 ESCAPE関数で使用できる予約文字の詳細については、「予約文字」をご参照ください。 escape_reserved_charsがTRUEに設定されている場合、ESCAPE関数は予約文字を変換します。 |
url_charset | 指定された文字をエスケープする前に変換する文字セットを指定します。 デフォルトでは、url_charsetはISO-8859-1に設定されています。 url_charsetがNULLに設定されている場合、文字は置き換えられません。 |
無効な文字 | エスケープシーケンス |
空白スペース () | %20 |
中括弧 ({ or }) | %7B および %7D |
ハッシュマーク (#) | %23 |
予約済み文字 | エスケープシーケンス |
アンパサンド (&) | %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)
パラメーター
パラメーター | 説明 |
url | UNESCAPE関数が変換する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