ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

48 DBMS_DBFS_CONTENT_SPI

DBMS_DBFS_CONTENT_SPIパッケージは、DBMS_DBFS_CONTENTサービス・プロバイダにApplication Program Interface(API)の仕様を提供します。アプリケーション設計者は、このAPIに準拠するPL/SQLパッケージを作成して、DBMS_CONTENTを拡張し、カスタム・サービス・プロバイダを利用できます。


関連項目:

  • 『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』


この章では、次の項目について説明します。


DBMS_DBFS_CONTENT_SPIの使用方法


概要

DBMS_DBFS_CONTENT_SPIパッケージは、DBMS_DBFS_CONTENTインタフェースの実装と個々のサービス・プロバイダ間の内部契約、およびプロバイダのコードを含むパッケージを説明します。

PL/SQLでは、パッケージ・シグネチャ間でコンパイル時に宣言タイプの一致を許可しないため、ストア・プロバイダは略式でSPIに準拠する必要があります。つまり、同じメソッド・シグネチャとセマンティクスで、パッケージDBMS_DBFS_CONTENT_SPIで指定されたすべてのメソッドを含むパッケージによってSPIを実装する必要があるということです。

明らかに、これらのプロバイダ・パッケージは他のメソッドを実装して、他のインタフェースを公開できますが、そのようなインタフェースをDBMS_CONTENTインタフェース自体で使用することはできません。

プロバイダSPIは単なる契約仕様であるため、DBMS_DBFS_CONTENT_SPIにはパッケージ本体はなく、このパッケージを使用して、実際にメソッドを起動することはできません。

SPIは、DBMS_CONTENTインタフェースによって定義される様々な要素(定数、タイプ、例外)を参照します。

また、DBMS_CONTENTインタフェースによってエクスポートされたクライアントAPIとDBMS_CONTENTインタフェース自体が動作対象として予測するプロバイダ・インタフェース間にはほぼ1対1対応があります。

メソッドのネーミング規則での主な区別は、すべてのパス名参照が常にストア修飾されていることです。つまり、マウント・ポイントの概念と完全絶対パス名は、DBMS_CONTENTインタフェースがプロバイダSPIメソッドを起動する前に、このインタフェースによって正規化され、ストア修飾パス名に変換されているということです。

DBMS_DBFS_CONTENTインタフェースとプロバイダSPIの相互接続は1対多の接続可能なアーキテクチャであり、インタフェースが動的SQLを使用してプロバイダSPIでメソッドを起動するため、これはランタイム・エラーの原因になる可能性があります。


セキュリティ・モデル

DBMS_DBFS_CONTENT_SPIパッケージの実装は、AUTHID CURRENT_USERとして作成する必要があります。


使用上の注意

実装

DBMS_DBFS_CONTENTインタフェースとプロバイダSPIの相互接続は1対多の接続可能なアーキテクチャであるため、インタフェースが動的SQLを使用してプロバイダSPIでメソッドを起動し、ランタイム・エラーの原因になる可能性があります。

DBMS_DBFS_CONTENTインタフェースが特定のプロバイダSPIを接続または接続解除するタイミングを示す明示的なINITまたはFINIメソッドはありません。プロバイダSPIは、任意のSPIエントリポイントで自動初期化が可能である必要があります。

サービス・プロバイダが実行するすべての操作は、自己完結している点で「ステートレス」です。なんらかの理由によりステートを維持する必要がある場合、必要に応じて問合せが可能な補助表などのデータ構造でステート維持する必要があります。

パス名

プロバイダSPIで使用されるすべてのパス名は、ペア形式でストア修飾されており(store_namepathname)、この形式ではパス名はストアのネームスペースをルートとします。

コンテンツIDベースのアクセスをサポートするストアおよびそのプロバイダ(「DBMS_DBFS_CONTENTの定数: ストア機能」「FEATURE_CONTENT_ID」を参照)もパス名に基づかないアドレッシングの形式をサポートします。コンテンツ項目は、明示的なストア名およびNULLパス名によって識別され、パラメータとしてまたはOPT_CONTENT_ID(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」を参照)プロパティによって指定されるコンテンツIDによって識別される場合もあります。

コンテンツIDベースのアクセスではサポートされない操作もあり、アプリケーションは利用できる最も簡単な作成または削除機能のみに依存することが必要です。

作成オプション

プロバイダSPIは、ディレクトリ、ファイル、リンクおよびストア機能のサポート対象である参照要素をDBFSコンテンツAPIが作成することを許可する必要があります。

すべての作成サブプログラムには有効なパス名が必要ですが、コンテンツIDベースのアクセスでは特別に除外されていることに注意してください。作成サブプログラムは、パス名が作成されるときにプロパティがパス名と関連付けられるように、オプションとして指定できます。STD_CREATION_TIME (「DBMS_DBFS_CONTENTの定数: 標準プロパティ」を参照)など、自動的に生成されたプロパティがただちにクライアントに使用可能になるように、作成完了後にクライアントが項目のプロパティを戻すことも可能です。フェッチ・バックされる正確なプロパティのセットは、prop_flagsパラメータにある様々なPROP_XXXビットマスクによって制御されます。

リンクおよび参照には、主パス名と関連付ける追加のパス名が必要です。

ファイルパス名は、オプションとしてBLOB値を指定して、基礎となるファイル・コンテンツを最初に移入するために使用できます(指定されたBLOBは任意の有効なLOBが可能)。prop_flagsパラメータでPROP_DATAが指定されていれば、作成時に基礎となるLOBがクライアントに戻されます。

ディレクトリ以外のパス名では、親ディレクトリを最初に作成する必要があります。ディレクトリ・パス名自体は、1回のコールで作成されたディレクトリにつながるパス名の階層で再帰的に作成することができます。

すでに存在するパスの作成を試みるとエラーになりますが、唯一の例外は「ソフト削除された」パス名です(「削除操作」の項を参照)。この場合、ソフト削除された項目は、暗黙的にパージされ、新しい項目の作成が試みられます。

コンテンツIDベースのアクセスをサポートするストアおよびそのプロバイダは、明示的なストア名およびNULLパスを受け入れて新しいコンテンツ要素を作成します。この要素に生成されたコンテンツIDは、OPT_CONTENT_IDプロパティによって使用でき(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」を参照)、コンテンツIDベースの作成は、prop_flagsパラメータのPROP_OPTプロパティによって自動的に暗黙的に行われます。

FEATURE_LAZY_PATHプロパティがサポートされない場合、新しく作成された要素も内部生成されたパス名を持つ場合があり(「DBMS_DBFS_CONTENTの定数: ストア機能」を参照)、このパスはSTD_CANONICAL_PATHプロパティによって使用できます(「DBMS_DBFS_CONTENTの定数: 標準プロパティ」を参照)。

ファイル要素のみがコンテンツIDベースのアクセスの候補です。

削除操作

プロバイダSPIは、ディレクトリ、ファイル、リンクおよびストア機能のサポート対象である参照要素をDBFSコンテンツAPIが削除することを許可する必要があります。

デフォルトでは、削除は永続的であり、トランザクションのコミットで正常に削除された項目を削除しますが、ストアは「ソフト削除」機能をサポートする場合もあります。クライアントから要求された場合、通常、標準リストや検索では表示されませんが、ソフト削除された項目はストアによって保持されます。

ソフト削除された項目は、リストアすることも明示的にパージすることもできます。

ディレクトリ・パス名は、1回のコールで削除されたディレクトリより下のパス名の階層で再帰的に削除することができます。再帰的ではない削除は空のディレクトリでのみ実行できます。再帰的なソフト削除は、削除されるすべての項目にソフト削除を適用します。

個々のパス名、およびディレクトリの下のソフト削除されたパス名は、様々なリストアおよびパージ・サブプログラムによってリストアまたはパージできます。

フィルタリングをサポートするプロバイダは、プロバイダ・フィルタを使用して、削除する項目のサブセットを識別できます。これは、DELETEDIRECTORYプロシージャPURGEALLプロシージャRESTOREALLプロシージャなどのバルク操作では非常に有効ですが、削除関連のすべての操作がフィルタ引数を受け入れます。

コンテンツIDベースのアクセスをサポートするストアおよびそのプロバイダは、コンテンツIDを指定することによりファイル項目の削除も許可します。

Get(取出し)操作およびPut(挿入)操作

GetサブプログラムおよびPutサブプログラムを使用して、既存のパス項目にアクセスして(問合せまたは更新のため)、変更できます。すべてのパス名はメタデータ(プロパティ)の読取りと変更を許可します。コール完了時に、クライアントはprop_flagsパラメータにより、特定のプロパティをフェッチするように要求できます。

ファイル・パス名はデータ(コンテンツ)の読取りと変更を許可します。コール完了時に、クライアントはprop_flagsパラメータのPROP_DATAビットマスクを使用して、新しいBLOBロケータを要求してデータ・アクセスを継続できます。

論理オフセットまたはバッファ量および適切なサイズのバッファを明示的に指定することにより、BLOBロケータを使用せずにファイルの読取りまたは書込みが可能です。

更新アクセスでは、forUpdateフラグを指定する必要があります。derefフラグを指定した場合、リンク・パス名へのアクセスはストアにより暗黙的、内部的に逆参照できますが(機能サポートの対象)、シンボリック・リンクが常に解決可能とはかぎらないため、これにより出力が未定義にされている可能性があります。

GETPATHプロシージャなどforUpdateが0に指定される読取りメソッドも、ストアが「時点」スタイルのフラッシュバック問合せを実行するために使用できるctxパラメータの有効なasofタイムスタンプを受け入れます。GETPATHプロシージャ・メソッドおよびPUTPATHプロシージャ・メソッドの変化形では、「時点」モードの操作はサポートされません。

GETPATHNOWAITプロシージャは、操作が更新のためであることを示しており、実行された場合(「DBMS_DBFS_CONTENTの定数: ストア機能」FEATURE_NOWAITを参照)、プロバイダは行のロックを待機せず例外(ORA-00054)を戻すことができます。

名前変更操作および移動操作

パス名は、名前の変更や移動が可能で、別のディレクトリ階層やマウント・ポイントにも移動できますが、同じストア内にかぎられます。

以前にはoldPathパラメータを指定することでアクセス可能だったディレクトリ以外のパス名は、その後newPathを指定することでアクセス可能な単一の項目に名前が変更されます(newPathがすでに存在していないことが前提)。

newPathが存在し、ディレクトリではない場合は、名前変更の処理はoldPathの名前を変更する前に暗黙的に既存の項目を削除します。newPathが存在しディレクトリである場合は、oldPathはターゲット・ディレクトリに移動されます。

以前にはoldPathによりアクセス可能だったディレクトリ・パス名はディレクトリとそのすべての子をnewPathに移動することによって名前が変更される(すでに存在していない場合)か、またはnewPathの子となります(存在しディレクトリである場合)。

コンテンツIDベースのアクセスおよびレイジー・パス名バインドをサポートするストアおよびそのプロバイダは、既存のコンテンツIDを新しい「パス」と関連付けるSETPATHプロシージャもサポートします。

ディレクトリ・ナビゲーションおよび検索

DBMS_CONTENTインタフェースはディレクトリ・パス名の内容をリストまたは検索でき、オプションとして、サブディレクトリに再帰的にリストまたは検索、ソフト削除された項目を表示、入力されたタイムスタンプの「時点」のフラッシュバックの使用、リストまたは検索述語に基づいてストア内で項目を内または外にフィルタリングできます。

ロック操作

DBMS_CONTENTインタフェースのクライアントは、ユーザー・レベルのロックを任意の有効なパス名(ストア機能サポートの対象)に適用、ロックをユーザー・データと関連付け、およびその後これらのパス名をロック解除できます。

ロックされた項目のステータスは、様々なオプションのプロパティを使用して利用できます(opt_lockに関する前述の説明に注意してください)。

ロックおよびロック解除操作を整合性のある方法で実行することは、ストアの責任です(ユーザー定義のロック・チェックをサポートすることが前提)。

アクセス・チェック操作

この操作は、指定したパス名(store_namepathpathtype)が、principalパラメータを利用する、ストアでのユーザーによる操作によって操作可能かどうかを確認します(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」の様々なDBMS_CONTENT.OP_XXX操作コードを参照)。アクセス制御をサポートするストアでも、内部的にこれらのチェックを実行してセキュリティが保証されるため、これは、DBMS_CONTENTインタフェースに便利なファンクションです。


DBMS_DBFS_CONTENT_SPIサブプログラムの要約

表48-1 DBMS_DBFS_CONTENT_SPIパッケージのサブプログラム

サブプログラム 説明

CHECKACCESSファンクション


指定したパスでユーザー(principal)が指定操作を実行できるかどうかをレポートします。

CREATEDIRECTORYプロシージャ


ディレクトリを作成します。

CREATEFILEプロシージャ


ファイルを作成します。

CREATELINKプロシージャ


既存のファイル・システム要素への物理的なリンクを作成します。

CREATEREFERENCEプロシージャ


ソース・ファイル・システム要素への新しい参照を作成します。

DELETECONTENTプロシージャ


指定したコンテンツIDによって指定されるファイルを削除します。

DELETEDIRECTORYプロシージャ


ディレクトリを削除します。

DELETEFILEプロシージャ


ファイルを削除します。

GETFEATURESファンクション


ストアの機能を戻します。

GETPATHプロシージャ


既存のパス項目(ファイルやディレクトリなど)を戻します。

GETPATHBYSTOREIDファンクション


基礎となるGUIDが元のストアにある場合、ストア修飾されたパス名を戻します。

GETPATHNOWAITプロシージャ


操作が更新のためであることを示しており、実行された場合、プロバイダは行のロックを待機せず例外(ORA-00054)を戻すことができます。

GETSTOREIDファンクション


ストアのIDを戻します。

GETVERSIONファンクション


ストアに関連付けられたバージョンを戻します。

LISTファンクション


ディレクトリ・パス名の内容をリストします。

LOCKPATHプロシージャ


指定した有効なパス名にユーザー・レベルのロックを適用します。

PURGEALLプロシージャ


パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。

PURGEPATHプロシージャ


指定したパス項目の任意のソフト削除したバージョンをパージします。

PUTPATHプロシージャ


新しいパス項目を作成します。

RENAMEPATHプロシージャ


パスの名前変更または移動を行います。

RESTOREALLプロシージャ


パスおよびフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。

RESTOREPATHプロシージャ


指定したパスおよびフィルタ条件に適合するすべてのソフト削除されたパス項目をリストアします。

SEARCHファンクション


指定したパスおよびフィルタ条件に適合するパス項目を検索します。

SETPATHプロシージャ


コンテンツIDによって表されるパス項目にパス名を割り当てます。

SPACEUSAGEプロシージャ


ファイル・システム領域使用統計情報を問い合せます。

UNLOCKPATHプロシージャ


LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。



CHECKACCESSファンクション

このファンクションは、指定したパスでユーザー(principal)が指定操作を実行できるかどうかをレポートします。これによって、操作の実行を試みることなく操作の妥当性を検証できます。CHECKACCESSが0を戻す場合、この操作を実行するために起動されたサブプログラムはエラーによって失敗します。

構文

DBMS_DBFS_CONTENT_SPI.CHECKACCESS (
   store_name     IN     VARCHAR2  DEFAULT NULL,
   path           IN     VARCHAR2,
   pathtype       IN     INTEGER,
   operation      IN     VARCHAR2,
   principal      IN     VARCHAR2)
  RETURN  INTEGER;

パラメータ

表48-2 CHECKACCESSプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

アクセスのチェックを行うパスの名前。

pathtype

パスが表すオブジェクトのタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。

operation

チェックする操作(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」を参照)。

principal

アクセス・チェックを行う対象のファイル・システム・ユーザー。


使用上の注意

ユーザーがこのファンクションを起動するかどうかにかかわらず、アクセス制御をサポートするストアは、内部的にこれらのチェックを実行してセキュリティを保証します。


CREATEDIRECTORYプロシージャ

このプロシージャは、ディレクトリを作成します。

構文

DBMS_DBFS_CONTENT_SPI.CREATEDIRECTORY (
   store_name  IN              VARCHAR2,
   path        IN              VARCHAR2,
   properties  IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   prop_flags  IN              INTEGER,
   recurse     IN              INTEGER,
   ctx         IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-3 CREATEDIRECTORYプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ディレクトリへのパス名。

properties

prop_flagsに応じて設定される、戻される、またはその両方の1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

prop_flags

どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトはPROP_STDです。PROP_SPCを設定し(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

recurse

0の場合、再帰的に実行せず、それ以外の場合は、指定したディレクトリの上に再帰的にディレクトリを作成します。

ctx

ディレクトリを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



CREATEFILEプロシージャ

このプロシージャは、ファイルを作成します。

構文

DBMS_DBFS_CONTENT_SPI.CREATEFILE (
   store_name    IN              VARCHAR2,
   path          IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   content       IN OUT NOCOPY   BLOB,
   prop_flags    IN              INTEGER,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-4 CREATEFILEプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ファイルへのパス名。

properties

prop_flagsに設定される、戻される、またはその両方の1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

content

ファイルに移入するデータを保持するBLOB(オプション)。

prop_flags

どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

ctx

ファイルを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



CREATELINKプロシージャ

このプロシージャは、すでに存在するファイル・システム要素(ファイルやディレクトリなど)への物理的なリンクを作成します。生成されるエントリは、srcPathパラメータの値と同じメタデータ構造を共有するため、ファイル・システム要素の参照数を増加する点でも類似しています。これは、UNIXファイル・システムのハード・リンクと似ています。

構文

DBMS_DBFS_CONTENT_SPI.CREATELINK (
   store_name    IN              VARCHAR2,
   srcPath       IN              VARCHAR2,
   dstPath       IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   prop_flags    IN              INTEGER,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-5 CREATELINKプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

srcPath

リンク先のファイル・システム・エントリ。

dstPath

作成する新しいリンク要素のパス。

properties

prop_flagsに応じて設定される、戻される、またはその両方の1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

prop_flags

どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

ctx

リンクを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



CREATEREFERENCEプロシージャ

このプロシージャは、ソース・ファイル・システム要素(ファイルやディレクトリなど)への新しい参照を作成します。生成される参照はソース要素を指しますが、ソース要素と直接メタデータを共有しません。これは、UNIXファイル・システムのシンボリック・リンクと似ています。

構文

DBMS_DBFS_CONTENT_SPI.CREATEREFERENCE (
   srcPath       IN              VARCHAR2,
   dstPath       IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   prop_flags    IN              INTEGER,
   store_name    IN              VARCHAR2,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-6 CREATEREFERENCEプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

srcPath

リンク先のファイル・システム・エントリ。

dstPath

作成する新しいリンク要素のパス。

properties

prop_flagsに応じて設定される、戻される、またはその両方の1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

prop_flags

どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

ctx

参照を作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



DELETECONTENTプロシージャ

このプロシージャは、指定したコンテンツIDによって指定されるファイルを削除します。

構文

DBMS_DBFS_CONTENT_SPI.DELETECONTENT (
   store_name     IN     VARCHAR2,
   contentID      IN     RAW,
   filter         IN     VARCHAR2,
   soft_delete    IN     INTEGER,
   ctx            IN     DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-7 DELETECONTENTプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

contentID

削除するファイルの一意の識別子。

filter

存在する場合、適用するフィルタ。

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。

ctx

ファイルを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



DELETEDIRECTORYプロシージャ

このプロシージャは、ディレクトリを削除します。recurseがゼロ以外の場合、ディレクトリのすべての要素を再帰的に削除します。フィルタがある場合は、ディレクトリのどの要素が削除されるかを決定します。

構文

DBMS_DBFS_CONTENT_SPI.DELETEDIRECTORY (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   filter         IN     VARCHAR2,
   soft_delete    IN     INTEGER,
   recurse        IN     INTEGER,
   ctx            IN     DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-8 DELETEDIRECTORYプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ディレクトリへのパス名。

filter

存在する場合、適用するフィルタ。

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。

recurse

0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルを再帰的に削除します。

ctx

ディレクトリを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



DELETEFILEプロシージャ

このプロシージャは、指定したファイルを削除します。

構文

DBMS_DBFS_CONTENT_SPI.DELETEFILE (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   filter         IN     VARCHAR2,
   soft_delete    IN     BOOLEAN,
   ctx            IN     DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-9 DELETEFILEプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ファイルへのパス名。

filter

存在する場合、適用するフィルタ。

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。

ctx

ファイルを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



GETFEATURESファンクション

このファンクションは、ストアの機能を戻します。

構文

DBMS_DBFS_CONTENT_SPI.GETFEATURES (
   store_name          IN      VARCHAR2)
  RETURN  INTEGER;

パラメータ

表48-10 GETFEATURESファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。


戻り値

サービス・プロバイダによりサポートされるDBMS_CONTENT.FEATURE_*機能。


GETPATHプロシージャ

このプロシージャは、既存のパス項目(ファイルやディレクトリなど)を戻します。これには、データとメタデータ(プロパティ)の両方が含まれます。

クライアントは(prop_flagsを使用して)特定のプロパティが戻されるように要求できます。ファイル・パス名は、prop_flagsprop_dataビットマスクを使用してBLOBロケータを指定する(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)か、または1つ以上のRAWバッファを渡すことによって、読み取れます。

forUpdateが0の場合、このプロシージャは、ストアにより「時点」スタイルのフラッシュバック問合せを実行するために使用できるctxの一部として、有効な「時点」タイムスタンプ・パラメータも受け入れます。GETPATHプロシージャの変化形では、これらのモードの操作はサポートされません。

構文

DBMS_DBFS_CONTENT_SPI.GETPATH (
   store_name  IN              VARCHAR2,
   path        IN              VARCHAR2,
   properties  IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   content     OUT    NOCOPY   BLOB,
   item_type   OUT             INTEGER,
   prop_flags  IN              INTEGER,
   forUpdate   IN              INTEGER,
   deref       IN              INTEGER,
   ctx         IN              DBMS_CONTENT_CONTEXT_T);

DBMS_DBFS_CONTENT_SPI.GETPATH (
   store_name  IN              VARCHAR2,
   path        IN              VARCHAR2,
   properties  IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   amount      IN OUT          NUMBER,
   offset      IN              NUMBER,
   buffer      OUT    NOCOPY   RAW,
   prop_flags  IN              INTEGER,
   ctx         IN              DBMS_CONTENT_CONTEXT_T);

DBMS_DBFS_CONTENT_SPI.GETPATH (
   store_name  IN              VARCHAR2,
   path        IN              VARCHAR2,
   properties  IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   amount      IN OUT          NUMBER,
   offset      IN              NUMBER,
   buffers     OUT    NOCOPY   DBMS_CONTENT_RAW_T,
   prop_flags  IN              INTEGER,
   ctx         IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-11 GETPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

properties

prop_flagsに応じて戻される、1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

content

ファイルに移入するデータを保持するBLOB(オプション)。

item_type

指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。

amount

入力時に読み取られるバイト数。出力時に読み取られるバイト数。

offset

読取りを開始するバイト・オフセット。

buffer

書込み先のバッファ。

buffers

書込み先のバッファ。

prop_flags

どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

forUpdate

パス項目に対する排他的書込みアクセス権限を示すためにロックを取得する必要があることを指定します。

deref

0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照(シンボリック・リンク)であることが条件です。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



GETPATHBYSTOREIDファンクション

基礎となるGUIDが元のストアにある場合、このファンクションはストア修飾されたパス名を戻します。

構文

DBMS_DBFS_CONTENT_SPI.GETPATHBYSTOREID (
   store_name          IN      VARCHAR2,
   guid                IN      INTEGER)
  RETURN VARCHAR2;

パラメータ

表48-12 GETPATHBYSTOREIDファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

guid

目的のパス項目を表す一意のID。


戻り値

GUIDによって表されるストア修飾されたパス名。

使用上の注意

STD_GUIDが不明な場合、NULL値が戻されます。クライアントは必要に応じて処理する必要があります。


GETPATHNOWAITプロシージャ

このプロシージャは、操作が更新のためであることを示しており、実行された場合(「DBMS_DBFS_CONTENTの定数: ストア機能」FEATURE_NOWAITを参照)、プロバイダは行のロックを待機せず例外(ORA-00054)を戻すことができます。

構文

DBMS_DBFS_CONTENT_SPI.GETPATHNOWAIT (
   store_name  IN              VARCHAR2,
   path        IN              VARCHAR2,
   properties  IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   content     OUT    NOCOPY   BLOB,
   item_type   OUT             INTEGER,
   prop_flags  IN              INTEGER,
   deref       IN              INTEGER,
   ctx         IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-13 GETPATHNOWAITプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

properties

prop_flagsに応じて戻される、1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

content

ファイルに移入するデータを保持するBLOB(オプション)。

item_type

指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。

prop_flags

どのプロパティが戻されるかを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

deref

0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照(シンボリック・リンク)であることが条件です。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



GETSTOREIDファンクション

このファンクションは、ストアのIDを戻します。

構文

DBMS_DBFS_CONTENT_SPI.GETSTOREID (
   store_name          IN      VARCHAR2)
  RETURN  NUMBER;

パラメータ

表48-14 GETSTOREIDファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。


戻り値

ストアのID。

使用上の注意

ストアIDは、登録およびマウント全体で、プロバイダ固有のストアを識別しますが、ストア・コンテンツへの変更とは無関係です。このため、ストア表への変更はストアIDに反映される必要がありますが、同じストア表の再初期化ではストアIDは保持される必要があります。


GETVERSIONファンクション

このファンクションは、ストアに関連付けられたバージョンを戻します。

構文

DBMS_DBFS_CONTENT_SPI.GETVERSION (
   store_name          IN      VARCHAR2)
  RETURN  VARCHAR2;

パラメータ

表48-15 GETVERSIONファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。


戻り値

標準のa.b.cネーミング規則(majorminorおよびpatchコンポーネント用)に基づく「バージョン」(プロバイダ・パッケージまたは個別ストアに固有)。


LISTファンクション

このファンクションは、ディレクトリ・パス名の内容をリストします。

サブプログラムの実行者には、サブディレクトリを再帰的に検索、ソフト削除された項目を表示、指定したタイムスタンプの「時点」でフラッシュバックを使用、リスト述語に基づいてストア内で項目をフィルタリングするオプションがあります。

構文

DBMS_DBFS_CONTENT_SPI.LIST (
   store_name    IN     VARCHAR2,
   path          IN     VARCHAR2,
   filter        IN     VARCHAR2,
   recurse       IN     INTEGER,
   ctx           IN     DBMS_CONTENT_CONTEXT_T)
  RETURN  DBMS_CONTENT_LIST_ITEMS_T PIPELINED;

パラメータ

表48-16 LISTファンクションのパラメータ

パラメータ 説明

store_name

リポジトリの名前。

path

ディレクトリへのパス名。

filter

存在する場合、適用するフィルタ。

recurse

0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルの内容を再帰的にリストします。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。


戻り値

再帰的に実行するためのパス、フィルタおよび条件に適合することが判明したパス項目(「DBMS_DBFS_CONTENT_LIST_ITEMS_T表タイプ」を参照)。

使用上の注意

このファンクションはリスト項目のみを戻します。クライアントは、GETPATHプロシージャのいずれかを明示的に使用して、項目と関連付けられているプロパティまたはコンテンツにアクセスする必要があります。


LOCKPATHプロシージャ

このプロシージャは、ユーザー・レベルのロックを指定した有効なパス名(ストア機能サポートの対象)に適用し、オプションとしてユーザー・データをロックと関連付けます。

構文

DBMS_DBFS_CONTENT_SPI.LOCKPATH (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   lock_type      IN     INTEGER,
   lock_data      IN     VARCHAR2,
   ctx            IN     DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-17 LOCKPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ロックされる項目のパス名。

lock_type

いずれかの利用可能なロック・タイプ(「DBMS_DBFS_CONTENTの定数: ロックタイプ」を参照)。

lock_data

ロックと関連付けられるオプションのユーザー・データ

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。


使用上の注意

  • ロックおよびロック解除操作を整合性のある方法で実行することは、ストアおよびそのプロバイダの責任です(ユーザー定義のロック・チェックをサポートすることが前提)。

  • ロックされた項目のステータスは、様々なオプションのプロパティを使用して利用できます(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」OPT_LOCK*を参照)。


PURGEALLプロシージャ

このプロシージャは、パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。

構文

DBMS_DBFS_CONTENT_SPI.PURGEALL (
   store_name     IN      VARCHAR2,
   path           IN      VARCHAR2,
   filter         IN      VARCHAR2,
   ctx            IN      DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-18 PURGEALLプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ファイル項目へのパス名。

filter

存在する場合、指定した条件に基づいて適用するフィルタ。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



PURGEPATHプロシージャ

このプロシージャは、指定したパス項目の任意のソフト削除したバージョンをパージします。

構文

DBMS_DBFS_CONTENT_SPI.PURGEPATH (
   path           IN      VARCHAR2,
   filter         IN      VARCHAR2,
   store_name     IN      VARCHAR2,
   ctx            IN      DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-19 PURGEPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ファイル項目へのパス名。

filter

存在する場合、適用するフィルタ。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



PUTPATHプロシージャ

このプロシージャは、新しいパス項目を作成します。

構文

DBMS_DBFS_CONTENT_SPI.PUTPATH (
   store_name    IN              VARCHAR2,
   path          IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   content       IN OUT NOCOPY   BLOB,
   item_type     OUT             INTEGER,
   prop_flags    IN              INTEGER,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

DBMS_DBFS_CONTENT_SPI.PUTPATH (
   store_name    IN              VARCHAR2,
   path          IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   amount        IN              NUMBER,
   offset        IN              NUMBER,
   buffer        IN              RAW,
   prop_flags    IN              INTEGER,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

DBMS_DBFS_CONTENT_SPI.PUTPATH (
   store_name    IN              VARCHAR2,
   path          IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   written       OUT             NUMBER,
   offset        IN              NUMBER,
   buffers       IN              DBMS_CONTENT_RAW_T,
   prop_flags    IN              INTEGER,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-20 PUTPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

置かれる項目のパス名。

properties

prop_flagsに応じて設定される、1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

content

ファイルに移入するデータを保持するBLOB(オプション)。

item_type

指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。

amount

読み取られるバイト数。

written

書き込まれたバイト数。

offset

読取りを開始するバイト・オフセット。

buffer

書込み先のバッファ。

buffers

書込み先のバッファ。

prop_flags

どのプロパティが設定されるかを決定します。デフォルトはPROP_STDです。prop_specを設定し、対象となる値を持つプロパティのDBMS_DBFS_CONTENT_PROPERTIES_T表タイプのインスタンスを提供することにより、戻されるプロパティを指定します。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。


使用上の注意

  • すべてのパス名はメタデータ(プロパティ)の読取りと変更を許可します。コール完了時に、クライアントはprop_flagsを使用して、特定のプロパティにアクセスできます(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)。

  • コール完了時に、クライアントはprop_flagsにあるprop_dataビットマスクを使用して、データ・アクセスを継続するために使用できる新しいBLOBロケータを要求できます(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)。

  • ファイルは、論理オフセット、バッファ量および適切なサイズのバッファを明示的に指定することにより、BLOBロケータを使用せずに書き込むことができます。


RENAMEPATHプロシージャ

このプロシージャは、パスの名前変更または移動を行います。この操作は、同じストア内であれば、複数のディレクトリ階層やマウント・ポイント間で実行できます。


注意:

「名前変更操作および移動操作」を参照してください。

構文

DBMS_DBFS_CONTENT_SPI.RENAMEPATH (
   store_name    IN              VARCHAR2,
   oldPath       IN              VARCHAR2,
   newPath       IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-21 RENAMEPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。一意であることが必要です。

oldPath

名前変更前のパス名。

newPath

名前変更後のパス名。

properties

prop_flagsに応じて設定される、1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



RESTOREALLプロシージャ

このプロシージャは、パスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。

構文

DBMS_DBFS_CONTENT_SPI.RESTOREALL (
   store_name     IN      VARCHAR2,
   path           IN      VARCHAR2,
   filter         IN      VARCHAR2,
   ctx            IN      DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-22 RESTOREALLプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

存在する場合、適用するフィルタ。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



RESTOREPATHプロシージャ

このプロシージャは、指定したパスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。

構文

DBMS_DBFS_CONTENT_SPI.RESTOREPATH (
   store_name     IN      VARCHAR2,
   path           IN      VARCHAR2,
   filter         IN      VARCHAR2,
   ctx            IN      DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-23 RESTOREPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

存在する場合、適用するフィルタ。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



SEARCHファンクション

このファンクションは、指定したパスおよびフィルタ条件に適合するパス項目を検索します。

構文

DBMS_DBFS_CONTENT_SPI.SEARCH (
   store_name     IN      VARCHAR2,
   path           IN      VARCHAR2,
   filter         IN      VARCHAR2,
   recurse        IN      INTEGER,
   ctx            IN      DBMS_CONTENT_CONTEXT_T)
 RETURN  DBMS_CONTENT_LIST_ITEMS_T PIPELINED;

パラメータ

表48-24 LISTファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

存在する場合、適用するフィルタ。

recurse

0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルの内容を再帰的に検索します。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。


戻り値

指定したパスおよびフィルタ条件に適合するパス項目(「DBMS_DBFS_CONTENT_LIST_ITEMS_T表タイプ」を参照)。


SETPATHプロシージャ

このプロシージャは、コンテンツIDによって表されるパス項目にパス名を割り当てます。

コンテンツIDベースのアクセスおよびレイジー・パス名バインドをサポートするストアおよびそのプロバイダは、既存のcontentIDを新しい「パス」と関連付けるSETPATHプロシージャもサポートします。


注意:

「名前変更操作および移動操作」を参照してください。

構文

DBMS_DBFS_CONTENT_SPI.SETPATH (
   store_name    IN              VARCHAR2,
   contentID     IN              RAW,
   path          IN              VARCHAR2,
   properties    IN OUT NOCOPY   DBMS_CONTENT_PROPERTIES_T,
   ctx           IN              DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-25 SETPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

contentID

関連付けるファイルの一意の識別子。

path

パス項目へのパス名。

properties

prop_flagsに応じて設定される、1つ以上のプロパティおよびその値(「DBMS_DBFS_CONTENT_PROPERTIES_T表タイプ」を参照)。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。



SPACEUSAGEプロシージャ

このプロシージャは、ファイル・システム領域使用統計情報を問い合せます。プロバイダは、ストアに対してこのサブプログラムをサポートする必要があり、特にストアが複数の表、索引、LOBなどで構成される場合、領域使用率の決定に最善の試みが求められます。

構文

DBMS_DBFS_CONTENT_SPI.SPACEUSAGE (
   store_name    IN        VARCHAR2,
   blksize       OUT       INTEGER,
   tbytes        OUT       INTEGER,
   fbytes        OUT       INTEGER,
   nfile         OUT       INTEGER,
   ndir          OUT       INTEGER,
   nlink         OUT       INTEGER,
   nref          OUT       INTEGER);

パラメータ

表48-26 SPACEUSAGEファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

blksize

ストアを保持する自然表領域のブロック・サイズ。異なるブロック・サイズの複数の表領域を使用する場合、任意の有効なブロック・サイズが受け入れられます。

tbytes

ストアを構成するすべてのセグメントに対して計算されたストアの合計サイズ(バイト単位)。

fbytes

ストアを構成するすべてのセグメントに対して計算されたストアの空き領域または未使用領域のサイズ(バイト単位)。

nfile

ストアで現在使用可能なファイル数。

ndir

ストアで現在使用可能なディレクトリ数。

nlink

ストアで現在使用可能なリンク数。

nref

ストアで現在使用可能な参照数。


使用上の注意

  • トップレベルのルート・ディレクトリで領域使用量を問い合せると、その下にあるすべての使用可能な異なるストアの領域使用量をまとめた要約が戻されます(同じストアが複数回マウントされている場合、1回のみカウントされます)。

  • データベース・オブジェクトは動的に拡張可能であるため、「空き」領域と「使用済」領域の区分を推定することは容易ではありません。


UNLOCKPATHプロシージャ

このプロシージャは、LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。

構文

DBMS_DBFS_CONTENT_SPI.UNLOCKPATH (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   ctx            IN     DBMS_CONTENT_CONTEXT_T);

パラメータ

表48-27 UNLOCKPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

ctx

パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。