オラクル社では、データベース内でのURI参照の格納および問合せに使用できるUriTypeファミリのタイプをサポートしています。UriType自体は抽象的なオブジェクト・タイプで、そのサブタイプには、HTTPURITYPE、XDBURITYPEおよびDBURITYPEがあります。
UriType列を作成して、その内部にDBURITYPE、XDBURITYPEまたはHTTPURITYPEのインスタンスを格納できます。また、UriTypeのサブタイプを独自に定義し、他のURLプロトコルを処理することもできます。
ファクトリ・メソッドとして使用し、http://や/oradbなどの接頭辞をスキャンすることで、このようなUriTypeの様々なインスタンスを自動生成できるUriFactoryパッケージもあります。また、独自のサブタイプを登録して、サポートする接頭辞を指定することもできます。たとえば、gopherプロトコルを処理するためのサブタイプを作成した場合、その作成済のサブタイプで処理できる接頭辞として、gopher://を登録できます。その後、指定の接頭辞で始まるURLを対象として、UriFactoryがサブタイプ・インスタンスを生成します。
この章では、次の項目について説明します。
|
関連項目:
|
UriTypeは、抽象的なスーパー・タイプです。URIにポイントされている値を取得するための標準的なファンクション・セットを提供します。プロトコルの実際の実装は、このタイプのサブタイプで定義する必要があります。
このタイプのインスタンスは直接作成できません。ただし、このタイプの列を作成してその中にサブタイプ・インスタンスを格納することや、格納されているURLのインスタンスが不明の場合でも列を選択することができます。
| メソッド | 説明 |
|---|---|
|
|
URLで指定されたアドレスにある |
|
|
URLで指定されたアドレスにある |
|
|
|
|
|
|
|
|
|
|
|
URLで指定されたアドレスにある |
このファンクションは、URLで指定されたアドレスにあるBLOBを戻します。サブタイプ・インスタンス内での上書きが可能です。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getBlob()
|
このファンクションは、URLで指定されたアドレスにあるBLOBを戻します。 |
MEMBER FUNCTION getBlob(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるBLOBを戻します。 |
FUNCTION getBlob(
|
このファンクションは、指定されたキャラクタ・セットのURLで指定されたアドレスにあるBLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
csid |
(IN) |
ドキュメントのキャラクタ・セットID。有効なOracle IDであり、0より大きい必要があります。そうでない場合は、エラーが戻されます。 |
このファンクションは、URLで指定されたアドレスにあるCLOBを戻します。サブタイプ・インスタンス内での上書きが可能です。このファンクションは、永続CLOBまたは一時CLOBのいずれかを戻します。一時CLOBが戻された場合は、解放する必要があります。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getClob()
|
このファンクションは、URLで指定されたアドレスにあるCLOBを戻します。 |
MEMBER FUNCTION getClob(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるCLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
このファンクションは、URIで示されるドキュメントのコンテンツ・タイプを戻します。サブタイプ・インスタンス内での上書きが可能です。このファンクションは、VARCHAR2のコンテンツ・タイプを戻します。
構文
MEMBER FUNCTION getContentType() RETURN VARCHAR2;
このファンクションは、UriTypeインスタンス内に格納されているURLをエスケープ形式で戻します。追加のセマンティクスを提供するため、このメンバー・ファンクションはサブタイプ・インスタンスに上書きされます。たとえば、HTTPURITYPEファンクションは、URL内に接頭辞http://を格納しません。外部URLの生成時に、接頭辞の追加と生成を行います。つまり、URLの値を取得するには、UriTypeインスタンスの属性ではなく、getExternalUrlファンクションまたはgetUrlファンクションを使用します。
構文
MEMBER FUNCTION getExternalUrl() RETURN varchar2;
このファンクションは、UriTypeインスタンス内に格納されているURLを非エスケープ形式で戻します。追加のセマンティクスを提供するため、このメンバー・ファンクションはサブタイプ・インスタンスに上書きされます。たとえば、HTTPURITYPEファンクションは、URL内に接頭辞http://を格納しません。外部URLの生成時に、接頭辞の追加と生成を行います。つまり、URLの値を取得するには、UriTypeインスタンスの属性ではなく、getExternalUrlファンクションまたはgetUrlファンクションを使用します。
構文
MEMBER FUNCTION getUrl() RETURN varchar2;
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。サブタイプ・インスタンス内での上書きが可能です。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getXML()
|
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。 |
MEMBER FUNCTION getXML(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるXMLTypeを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
HTTPURITYPEはUriTypeのサブタイプであり、HTTPプロトコルをサポートします。UTL_HTTPパッケージを内部で使用し、HTTP URLにアクセスします。このリリースでは、プロキシおよび保護Walletはサポートされていません。
| メソッド | 説明 |
|---|---|
|
|
指定されたURIから |
|
|
URLで指定されたアドレスにある |
|
|
URLで指定されたアドレスにある |
|
|
URIで示されるドキュメントのコンテンツ・タイプを戻します。 |
|
|
|
|
|
|
|
|
URLで指定されたアドレスにある |
|
|
指定されたURIから |
この静的ファンクションは、HTTPURITYPEインスタンスを構成します。HTTPURITYPEインスタンスは、格納されたURLの接頭辞http://を含みません。
構文
STATIC FUNCTION createUri( url IN varchar2) RETURN HTTPURITYPE;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
有効なHTTP URLを含むURL文字列(エスケープ形式)。 |
このファンクションは、HTTP URLで指定されたアドレスにあるBLOBを戻します。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getBlob()
|
このファンクションは、HTTP URLで指定されたアドレスにあるBLOBを戻します。 |
MEMBER FUNCTION getBlob(
|
このファンクションは、HTTP URLおよびコンテンツ・タイプで指定されたアドレスにあるBLOBを戻します。 |
FUNCTION getBlob(
|
このファンクションは、指定されたキャラクタ・セットのURLで指定されたアドレスにあるBLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
csid |
(IN) |
ドキュメントのキャラクタ・セットID。有効なOracle IDであり、0より大きい必要があります。そうでない場合は、エラーが戻されます。 |
このファンクションは、HTTP URLアドレスにあるCLOBを戻します。一時CLOBが戻された場合は、解放する必要があります。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getClob()
|
HTTP URLで指定されたアドレスにあるCLOBを戻します。 |
MEMBER FUNCTION getClob(
|
HTTP URLおよびコンテンツ・タイプで指定されたアドレスにあるCLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
このファンクションは、HTTPURITYPEインスタンス内に格納されているURLをエスケープ形式で戻します。このメンバー・ファンクションはサブタイプ・インスタンスに上書きされます。HTTPURITYPEファンクションは、接頭辞http://を含みませんが、外部URLに対しては接頭辞を生成します。
構文
MEMBER FUNCTION getExternalUrl() RETURN varchar2;
このファンクションは、HTTPURITYPEインスタンス内に格納されているURLを非エスケープ形式で戻します。
構文
MEMBER FUNCTION getUrl() RETURN varchar2;
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。アドレスが有効なXML文書を示していない場合は、エラーがスローされます。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getXML()
|
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。 |
MEMBER FUNCTION getXML(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるXMLTypeを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
DBURITYPEはUriTypeのサブタイプであり、DBURI参照をサポートします。DBURI参照はデータベース間のURLであり、データベース内の任意の行データ、または行データと列データの両方を参照する際に使用できます。URLは、データベースのXMLを視覚化したXPath式として指定されます。スキーマは、表やビューを含む要素になります。さらに、この表やビューの中には行や列が含まれます。
| メソッド | 説明 |
|---|---|
|
|
|
|
|
指定されたURIから |
|
|
|
|
|
|
|
|
URIで示されるドキュメントのコンテンツ・タイプを戻します。 |
|
|
|
|
|
|
|
|
URLで指定されたアドレスにある |
この静的ファンクションは、DBURITYPEインスタンスを構成します。指定されたURLを解析し、DBURITYPEインスタンスを作成します。
構文
STATIC FUNCTION createUri( url IN varchar2) RETURN DBURITYPE;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
有効なDBURITYPEを含むエスケープ形式のURL文字列。 |
DBURITYPEインスタンスを構成します。
構文
CONSTRUCTOR FUNCTION DBURITYPE( url IN varchar2);
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
有効なDBURITYPEを含むURL文字列。URL文字列はエスケープ形式です。たとえば、非URL文字は、UTF-8エンコードに対する16進数として表示されます。 |
このファンクションは、URLで指定されたアドレスにあるBLOBを戻します。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getBlob()
|
このファンクションは、URLで指定されたアドレスにあるBLOBを戻します。 |
MEMBER FUNCTION getBlob(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるBLOBを戻します。 |
FUNCTION getBlob(
|
このファンクションは、指定されたキャラクタ・セットのURLで指定されたアドレスにあるBLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
csid |
(IN) |
ドキュメントのキャラクタ・セットID。有効なOracle IDであり、0より大きい必要があります。そうでない場合は、エラーが戻されます。 |
このファンクションは、DBURITYPEインスタンスで指定されたアドレスにあるCLOBを戻します。一時CLOBが戻された場合は、解放する必要があります。XML文書またはテキスト文書が戻されます。DBURI参照がXPathの要素を識別すると、フォーマットされたXML文書が返されます。他方、テキスト・ノードを識別すると、列または属性のテキスト・コンテンツのみが返されます。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getClob()
|
DBURITYPEインスタンスで指定されたアドレスにあるCLOBを戻します。 |
MEMBER FUNCTION getClob(
|
DBURITYPEインスタンスおよびコンテンツ・タイプで指定されたアドレスにあるCLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
このファンクションは、URIで示されるドキュメントのコンテンツ・タイプを戻します。
構文
MEMBER FUNCTION getContentType() RETURN VARCHAR2;
このファンクションは、DBURITYPEインスタンス内に格納されているURLをエスケープ形式で戻します。エスケープしたURLをWebページ上で使用する前に、DBURITYPEを処理するDBUriサーブレットのURLを追加する必要があります。
構文
MEMBER FUNCTION getExternalUrl() RETURN varchar2;
このファンクションは、DBURITYPEインスタンス内に格納されているURLを非エスケープ形式で戻します。
構文
MEMBER FUNCTION getUrl() RETURN varchar2;
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getXML()
|
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。 |
MEMBER FUNCTION getXML(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるXMLTypeを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
XDBURITYPEは、URITypeの新しいサブタイプです。Oracle XML DB階層に含まれるドキュメントをURIとして表示し、URIType列として表に埋め込むことができます。URIのURL部分は、参照先のXMLドキュメントの階層名です。オプションのフラグメント部分はXPath構文を使用し、#でURL部分から分離します。フラグメントを指定するさらに一般的なXPointer構文は、現在サポートされていません。
| メソッド | 説明 |
|---|---|
|
|
指定されたURLに対応する |
|
|
|
|
|
|
|
|
URIで示されるドキュメントのコンテンツ・タイプを戻します。 |
|
|
|
|
|
|
|
|
URLで指定された文書のコンテンツに対応する |
|
|
指定されたURIから |
この静的ファンクションは、XDBURITYPEインスタンスを構成します。指定されたURLを解析し、XDBURITYPEインスタンスを作成します。
構文
STATIC FUNCTION createUri( url IN varchar2) RETURN XDBURITYPE
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
有効なXDBURITYPEを含むエスケープ形式のURL文字列。 |
このファンクションは、XDBURITYPEインスタンスで指定されたアドレスにあるBLOBを戻します。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getBlob()
|
このファンクションは、URLで指定されたアドレスにあるBLOBを戻します。 |
MEMBER FUNCTION getBlob(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるBLOBを戻します。 |
FUNCTION getBlob(
|
このファンクションは、指定されたキャラクタ・セットのURLで指定されたアドレスにあるBLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
csid |
(IN) |
ドキュメントのキャラクタ・セットID。有効なOracle IDであり、0より大きい必要があります。そうでない場合は、エラーが戻されます。 |
このファンクションは、XDBURITYPEインスタンスで指定されたアドレスにあるCLOBを戻します。一時CLOBが戻された場合は、解放する必要があります。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getClob()
|
XDBUriTypeインスタンスで指定されたアドレスにあるCLOBを戻します。 |
MEMBER FUNCTION getClob(
|
XDBUriTypeインスタンスおよびコンテンツ・タイプで指定されたアドレスにあるCLOBを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
このファンクションは、URIで示されるドキュメントのコンテンツ・タイプを戻します。このファンクションは、VARCHAR2のコンテンツ・タイプを戻します。
構文
MEMBER FUNCTION getContentType() RETURN VARCHAR2;
このファンクションは、XDBURITYPEインスタンス内に格納されているURLをエスケープ形式で戻します。
構文
MEMBER FUNCTION getExternalUrl() RETURN varchar2;
このファンクションは、XDBURITYPEインスタンス内に格納されているURLを非エスケープ形式で戻します。
構文
MEMBER FUNCTION getUrl() RETURN varchar2;
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。指定できるオプションは、次の表のとおりです。
| 構文 | 説明 |
|---|---|
MEMBER FUNCTION getXML()
|
このファンクションは、URLで指定されたアドレスにあるXMLTypeを戻します。 |
MEMBER FUNCTION getXML(
|
このファンクションは、URLおよびコンテンツ・タイプで指定されたアドレスにあるXMLTypeを戻します。 |
| パラメータ | IN / OUT | 説明 |
|---|---|---|
content |
(OUT) |
URIが示すドキュメントのコンテンツ・タイプ。 |
XDBURITYPEインスタンスを構成します。
構文
CONSTRUCTOR FUNCTION XDBURITYPE( url IN VARCHAR2, flags IN RAW := NULL) RETURN self AS RESULT;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
有効なXDBUriTypeを含むURL文字列。URL文字列はエスケープ形式です。たとえば、非URL文字は、UTF-8エンコードに対する16進数として表示されます。 |
flags |
(IN) |
有効な値は、次のとおりです。
|
UriFactoryパッケージには、プログラム実装のハード・コードを行わずにURIタイプの適切なインスタンスを生成できる、ファクトリ・メソッドが含まれています。
また、UriFactoryパッケージには、多様なプロトコルに対応するUriTypeの新しいサブタイプを登録する機能が備わっています。たとえば、新しいプロトコルecom://を作成すると、そのプロトコルを処理するUriTypeのサブタイプを定義し、UriFactoryに登録できます。登録後、ファクトリ・メソッドは、ecom://の接頭辞を検出すると新しいサブタイプ・インスタンスを生成します。
| メソッド | 説明 |
|---|---|
|
|
指定されたURL文字列用に正しいURLハンドラを戻します。 |
|
|
URLをエスケープ形式で戻します。 |
|
|
URLを非エスケープ形式で戻します。 |
|
|
特定のURLを処理するタイプの名前を登録します。 |
|
|
URLハンドラの登録を解除します。 |
このファクトリ・メソッドは、指定されたURI文字列用に正しいURIハンドラを戻します。プロトコルを処理できるUriTypeのサブタイプ・インスタンスを戻します。URLを解決できない場合は、デフォルトで常にXDBURITYPEインスタンスが作成されます。REGISTERURLHANDLERファンクションを使用すると、URLハンドラを特定の接頭辞に対して登録できます。接頭辞が一致する場合、GETURIではそのサブタイプを使用します。
構文
FUNCTION getUri( url IN Varchar2) RETURN UriType;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
uri |
(IN) |
有効なHTTP URLを含むエスケープ形式のURL文字列。 |
このファンクションは、URLをエスケープ形式で戻します。追加のセマンティクスを提供するため、このメンバー・ファンクションはサブタイプ・インスタンスに上書きされます。たとえば、HTTPURITYPEは、URL内に接頭辞http://を格納しません。外部URLの生成時に、接頭辞の追加と生成を行います。つまり、URLの値を取得するには、UriTypeの属性ではなく、GETEXTERNALURLファンクションまたはGETURIファンクションを使用します。
構文
MEMBER FUNCTION escapeUri() RETURN varchar2;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
URL文字列はエスケープ形式で戻されます。 |
このファンクションは、URLを非エスケープ形式で戻します。つまり、このファンクションではESCAPEURIと反対の処理が実行されます。ファンクションによる文字列のスキャン後、さらに文字が非URL16進からUTF-8に変換されます。戻りタイプはVARCHAR2になるため、データベース・キャラクタ・セットで定義されたものと同種の文字に変換されます。
構文
FUNCTION unescapeUri() RETURN varchar2;
| パラメータ | IN / OUT | 説明 |
|---|---|---|
url |
(IN) |
URL文字列は非エスケープ形式で戻されます。 |
特定のURLを処理するタイプの名前を登録します。指定するタイプは、有効であり、UriTypeのサブタイプまたはそのサブタイプの1つである必要があります。また、createUri静的メンバー・ファンクションを実装する必要もあります。このファンクションは、GETURIファンクションによりコールされ、タイプのインスタンスを生成します。stripprefixパラメータは、このファンクションをコールする前に接頭辞の削除が必要であることを示しています。
構文
PROCEDURE registerUrlHandler( prefix IN varchar2, schemaName IN varchar2, typename IN varchar2, ignoreCase IN boolean := true, stripprefix IN boolean := true);
| パラメータ | IN / OUT | 説明 |
|---|---|---|
prefix |
(IN) |
処理対象の接頭辞(例: http://)。 |
schemaName |
(IN) |
タイプが含まれているスキーマの名前(大文字と小文字が区別されます)。 |
typename |
(IN) |
URLを処理するタイプの名前(大文字と小文字が区別されます)。 |
ignoreCase |
(IN) |
接頭辞が一致している場合、大文字と小文字は区別されません。 |
stripprefix |
(IN) |
タイプのインスタンスを生成する前に接頭辞を削除します。 |