このトピックでは、URL 関数の構文について説明し、使用方法の例を示します。
PARSE_URL: URL から指定されたコンテンツを返します。
URL_DECODE:
application/x-www-form-urlencoded標準に基づいてエンコードされた URL 文字列をデコードし、結果を返します。URL_ENCODE:
application/x-www-form-urlencoded標準に基づいて URL 文字列をエンコードし、結果を返します。URL_EXTRACT_FRAGMENT: URL からフラグメント識別子を返します。
URL_EXTRACT_HOST: URL からホスト名または IP アドレスを返します。
URL_EXTRACT_PARAMETER: URL のクエリ部分から指定されたパラメーター値を返します。
URL_EXTRACT_PATH: URL からパス情報を返します。
URL_EXTRACT_PORT: URL からポート情報を返します。
URL_EXTRACT_PROTOCOL: URL からプロトコル情報を返します。
URL_EXTRACT_QUERY: URL からクエリ情報を返します。
PARSE_URL
PARSE_URL(url, part [,key] )説明: この関数は、
urlからpartで指定されたコンテンツを返します。ルール:
partがQUERYに設定されている場合、この関数はkeyに対応するvalueを返します。url、part、またはkeyの値が NULL の場合、この関数は NULL を返します。partが無効な値に設定されている場合、この関数は NULL を返します。
partの値は大文字と小文字を区別しません。次の値がサポートされています。HOST: URL 内のホスト名または IP アドレス。
PATH: URL 内のパス情報。例:
/path/to/resource。QUERY: URL 内のクエリ部分。
?で始まります。REF: URL 内のフラグメント識別子。
#で始まります。PROTOCOL: URL 内のプロトコル情報。例:
httpまたはhttps。AUTHORITY: URL 内のユーザー情報、ホスト名、およびポート番号。
FILE: URL のファイルパス。
USERINFO: URL 内のユーザー情報。ユーザー名とパスワードを含みます。
入力値のデータ型:
url、part、およびkeyは STRING。戻り値のデータ型: STRING。
例:
urlからホスト名または IP アドレスを返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST');サンプル結果:
example.comurlからパスを返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH');サンプル結果:
/over/there/index.dtburlからクエリ部分を返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type');サンプル結果:
animalurlからフラグメント識別子を返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF');サンプル結果:
noseurlからプロトコルを返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL');サンプル結果:
fileurlからユーザー情報、ホスト名、およびポート番号を返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY');サンプル結果:
username:password@example.com:8042urlからユーザー情報を返します。サンプル文:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');サンプル結果:
username:password
URL_DECODE
URL_DECODE(input)説明: この関数は、
application/x-www-form-urlencoded標準に基づいてエンコードされた URL 文字列をデコードし、結果を返します。ルール:
inputの値が NULL の場合、この関数は NULL を返します。エンコードルール:
文字 a から z、A から Z、および 0 から 9 は変更されません。
ピリオド (.)、ハイフン (-)、アスタリスク (*)、およびアンダースコア (_) は保持されます。
プラス記号 (+) はスペースに変換されます。
パーセントエンコードされたシーケンス (
%xy) は対応するバイト値に変換され、結果のバイトストリームは UTF-8 エンコードされた文字列としてデコードされます。
入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
application/x-www-form-urlencoded標準に基づいてエンコードされた URL 文字列をデコードし、結果を返します。サンプル文:SELECT url_decode('example+for+url_decode%3A%2F%2F+%28fdsf%29');サンプル結果:
example for url_decode:// (fdsf)
URL_ENCODE
URL_ENCODE(input)説明: この関数は、
application/x-www-form-urlencoded標準に基づいて URL 文字列をエンコードし、結果を返します。ルール:
inputの値が NULL の場合、この関数は NULL を返します。エンコードルール:
文字 a から z、A から Z、および 0 から 9 は変更されません。
ピリオド (.)、ハイフン (-)、アスタリスク (*)、およびアンダースコア (_) は保持されます。
スペースはプラス記号 (+) に変換されます。
その他の文字は、UTF-8 を使用してバイト値としてエンコードされます。各バイト値は
%xy形式で、xyは対応する 16 進数表現です。
入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
example for url_encode:// (fdsf)文字列をapplication/x-www-form-urlencoded標準に基づいてエンコードし、結果を返します。SELECT url_encode('example for url_encode:// (fdsf)');サンプル結果:
example+for+url_encode%3A%2F%2F+%28fdsf%29
URL_EXTRACT_FRAGMENT
URL_EXTRACT_FRAGMENT(url)説明: この関数は、
urlから#で始まるフラグメント識別子を返します。ルール:
urlの値が NULL または無効な場合、この関数は NULL を返します。urlにフラグメント識別子が含まれていない場合、この関数は空の文字列を返します。
入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからフラグメント識別子を返します。サンプル文:SELECT url_extract_fragment('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
Ref1
URL_EXTRACT_HOST
URL_EXTRACT_HOST(url)説明: この関数は、
urlからホスト名または IP アドレスを返します。ルール:
urlの値が NULL または無効な場合、この関数は NULL を返します。入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからホスト名または IP アドレスを返します。サンプル文:SELECT url_extract_host('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
example.com
URL_EXTRACT_PARAMETER
URL_EXTRACT_PARAMETER(url, parameter)説明: この関数は、
urlのクエリ部分からparameterで指定された情報を返します。ルール:
urlの値が NULL、parameterの値が NULL、またはurlのクエリ部分にparameterが含まれていない場合、この関数は NULL を返します。入力値のデータ型:
urlおよびparameterは STRING。戻り値のデータ型: STRING。
例:
urlのクエリ部分からk1で指定された情報を返します。サンプル文:SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');サンプル結果:
v1urlのクエリ部分からk5で指定された情報を返します。サンプル文:SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k5');サンプル結果:
NULL
URL_EXTRACT_PATH
URL_EXTRACT_PATH(url)説明: この関数は、
urlからパス情報を返します。ルール:
urlの値が NULL または無効な場合、この関数は NULL を返します。urlにパスが含まれていない場合、この関数は空の文字列を返します。
入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからパス情報を返します。サンプル文:SELECT url_extract_path('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
/path1/p.php
URL_EXTRACT_PORT
URL_EXTRACT_PORT(url)説明: この関数は、
urlからポート情報を返します。ルール:
urlの値が NULL または無効な場合、あるいはurlにポートが含まれていない場合、この関数は NULL を返します。入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからポート情報を返します。サンプル文:SELECT url_extract_port('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
NULLurlからポート情報を返します。サンプル文:SELECT url_extract_port('http://example.com:8080/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
8080
URL_EXTRACT_PROTOCOL
URL_EXTRACT_PROTOCOL(url)説明: この関数は、
urlからプロトコル情報を返します。ルール:
urlの値が NULL または無効な場合、この関数は NULL を返します。入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからプロトコル情報を返します。サンプル文:SELECT url_extract_protocol('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
http
URL_EXTRACT_QUERY
URL_EXTRACT_QUERY(url)説明: この関数は、
urlからクエリ情報を返します。ルール:
urlの値が NULL または無効な場合、この関数は NULL を返します。urlにクエリ情報が含まれていない場合、この関数は空の文字列を返します。
入力値のデータ型: STRING。
戻り値のデータ型: STRING。
例:
urlからクエリ情報を返します。サンプル文:SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');サンプル結果:
k1=v1&k2=v2