オラクル社では、データベース内での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) |
タイプのインスタンスを生成する前に接頭辞を削除します。 |