DBMS_DBFS_CONTENT
パッケージは、1つ以上のストア・プロバイダによってサポートされるファイル・システムのような抽象化を構成するインタフェースを提供します。
関連項目:
|
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
例外
使用上の注意
DBMS_DBFS_CONTENT
パッケージは、1つ以上のストア・プロバイダによってサポートされるファイル・システムのような抽象化を構成するインタフェースを提供します。DBFSコンテンツ・インタフェースの「コンテンツ」は、メタデータを含むファイルを指し、表のBLOB
(およびその他の列)にマップしたり、データベース内部で実行されるJavaまたはPL/SQLにあるユーザー記述のプラグインによって動的に作成することができます。後者の形式は「ストア・プロバイダ」と呼ばれます。
スキーマですでにLOBを列として使用しているアプリケーションでは、DBFSコンテンツ・インタフェースはBLOB
列にアクセスするためのデフォルトの実装として装備されています。これにより既存のアプリケーションは容易にPL/SQLプロバイダ実装を追加して、スキーマやビジネス・ロジックを書き換えることなくDBFSコンテンツ・インタフェースを通じてアクセスできます。また、アプリケーションは、標準的なDBFSコンテンツ・プログラミング・インタフェースを通じて、他の(サードパーティ)ストアに格納されているコンテンツの読取りと書込みができます。
次に、プロバイダの例を示します。
コンテンツDBなどのコンテンツ・アプリケーション
ファイルからデータを表面化させるパッケージ・アプリケーション
ファイル・システム・インタフェースを利用するカスタム・アプリケーション。たとえば、医療イメージを格納するアプリケーション。
DBS_DBFS_CONTENT
パッケージは、格納固有のライブラリや実装から隔離されながら、様々なストアに共通の機能を取り出して、ポータブル・クライアント・アプリケーションを作成するために使用する簡単で必要最低限度のインタフェースに抽象化します。
コンテンツ・インタフェースは、パス名の最初のコンポーネントを脱曖昧化として使用して、1つ以上のストアのパスネームスペースを1つの統合されたネームスペースに集計し、このネームスペースをクライアント・アプリケーションに示します。
これによりクライアントは、完全絶対パス名を次の単一の文字列として、
/store-name/store-specific-path-name
またはストア修飾されたパス名を次の文字列2タプルとして使用することで基礎となる文書にアクセスできます。
["store-name","/store-specific-path-name"]
次にインタフェースは、パス名に対する様々な操作を適切なストアに正しく伝送し、結果をクライアントが目的とするネームスペースに戻して統合する処理を担当します。
ストア・サービス・プロバイダは、DBMS_DBFS_CONTENT_SPI
パッケージによって宣言されるように、サービス・プロバイダ・インタフェース(SPI)に従う必要があります。SPIはクライアント側のインタフェースではなく、コンテンツ・インタフェースの実装とそこに接続可能になろうとする様々なストア間のプライベート契約として機能します。
コンテンツ・インタフェースは、様々なストア操作のクライアントが参照可能な動作(標準および例外)を定義すると同時に、別のストアの選択に合わせた豊富な機能セットを実装することを許可します。このインタフェースにより、ストアは機能を自己記述でき、またインテリジェントなクライアント・アプリケーションは(名前または実装によって識別されるストア固有のハード・コード・ロジックではなく)これらの機能に基づいて動作をチューニングできます。
DBMS_DBFS_CONTENT
パッケージでは、次の表に示す定数が使用されます。
パス名の定数およびタイプ
次の定数は、パスと項目名の宣言に役立ちます。パスは1024文字に制限され、項目名は256文字に制限されます。
表47-1 DBMS_DBFS_CONTENTの定数 - パス名
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
クライアントが参照できる絶対パス名の最大長。 |
|
|
|
コンポーネント名を表すことができる文字列のポータブル別名。 |
|
|
|
クライアントが参照できる絶対パス名の個別コンポーネントの最大長。 |
|
|
|
パス名を表すことができる文字列のポータブル別名。 |
コンテンツID定数
ストアは、ストアにある特定のパス項目を表す一意識別子をユーザーに表示できます。これらの識別子は128文字に制限されます。
表47-2 DBMS_DBFS_CONTENTの定数 - コンテンツID
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
ファイル・タイプのコンテンツ項目を識別する、ストア固有のプロバイダによって生成されたコンテンツIDの最大長。 |
|
|
|
コンテンツID値を表すことができるRAWバッファのポータブル別名。 |
プロパティの定数
ストアにあるすべてのパス名はプロパティのセットと関連付けられています。簡略化のため、また一般的な基準とするために、各プロパティは文字列「名前」、文字列「値」(未設定、未定義または特定のストア実装でサポートされていない場合は、NULL
)および値「typecode」(「値」文字列で保持される実際の値のタイプに対する数値判別式)で識別されます。
プロパティの値を文字列に強制することは、様々なインタフェースを一様かつコンパクトにするというメリットがあります(また、基礎となるストアの実装を簡単にすることもできます)が、文字列への変換および文字列からの変換で情報が失われる可能性があるというデメリットがあります。
クライアントおよびストアは、これらの変換に明確に定義されたデータベース表記規則を使用し、必要に応じてtypecode
フィールドを使用することが前提です。
typecodeは、文字列が強制されたプロパティ値の真のタイプを表す数値です。単純なスカラー・タイプ(数字、日付、タイムスタンプなど)がクライアントにより依存でき、ストアによって実装される必要があります。
標準RDBMSのtypecodeは正の整数であるため、DBMS_DBFS_CONTENT
インタフェースでは、負の整数が負のtypecodeによるクライアント定義のタイプを表すことができます。これらのtypecodeは標準のtypecodeとは競合せず、永続的に保持され、必要に応じてクライアントに戻されますが、DBFSコンテンツAPIや特定のストアによる解釈は必要ありません。ポータブル・クライアント・アプリケーションでは、特定のストアに情報を渡す裏口としてユーザー定義のtypecodeを使用することはできません。
表47-3 DBMS_DBFS_CONTENTの定数 - プロパティ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
プロパティ名の最大長。 |
|
|
|
プロパティ名を表すことができる文字列のポータブル別名。 |
|
|
|
プロパティの文字列の最大長。 |
|
|
|
プロパティの値を表すことができる文字列のポータブル別名。 |
パス名タイプ
ストアのパス項目には関連付けられた項目タイプがあります。これらのタイプは、項目がストアで表すエントリの種類を表します。
表47-4 DBMS_DBFS_CONTENTの定数 - パス名タイプ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
コンテンツを格納する標準のファイル( |
|
|
|
ファイル・タイプなど、他のパス名タイプのコンテナ。 |
|
|
|
シンボリック・リンク(つまり、パス名と関連付けられている未解釈文字列)。シンボリック・リンクは、指定したどのストア(または、 |
|
|
|
コンテンツに対して常に有効なパスの別名であるハード・リンク。 |
ストア機能
できるかぎり多数の異なるタイプのストアに、共通のプログラム・インタフェースを提供するために、DBFSコンテンツAPIでは、個々のストア・プロバイダに対する様々な操作の動作の一部を定義および実装したままにしています。
しかし、ポータブル・アプリケーションに対して十分豊富かつ有効なAPIをクライアント側のプログラマに提供することは重要です。
DBFSコンテンツAPIでは、様々なストア・サービス・プロバイダ(および様々なストア)が「機能セット」(サポートする機能とサポートしない機能を示すビットマスク)によって自分たちを記述できるようにすることで、これを可能にします。
機能セットを使用すると、注意は必要ですが、追加ロジックをクライアント側に実装し、複雑な操作はサポートする能力があるストアに任せることで、クライアント・アプリケーションが特定のストアの機能不足を補うことが可能です。
表47-5 DBMS_DBFS_CONTENTの定数 - ストア機能
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
ストアが階層パス名の一部としてフォルダ(またはディレクトリ)をサポートする場合に設定します。 |
|
|
|
ストア内の暗黙的なフォルダ操作が自律型トランザクション内部で実行される場合に設定します。通常、自律型トランザクションの使用は、(a)並行性を大幅に犠牲にして得られる、実装の簡略化およびすべての操作に対するクライアント制御トランザクションの範囲( |
|
|
|
ストアがパス要素の |
|
|
|
ストアがアクセス制御リスト(ACL)およびこれらのACLに基づく内部認証またはチェックをサポートする場合に設定します。ACLは標準のプロパティですが、ストアはACLを格納し取得するだけでいかなる方法での解釈も行わない場合があります。 |
|
|
|
ストアがシンボリック・リンクをサポートする場合で、特定タイプのシンボリック・リンク(具体的には、絶対パス名以外)がストア自身によって内部的に解決できる場合に設定します。 |
|
|
|
ストアがシンボリック・リンクをサポートする場合で、特定タイプのシンボリック・リンク(具体的には、絶対パス名以外)がストア自身によって内部的に解決できる場合に設定します。 |
|
|
|
ストアがハード・リンクをサポートする場合に設定します。 |
|
|
|
ストアが、ストアの各種アイテムに適用可能なユーザー・レベルのロック(読取り専用、書込み専用、読取り/書込み)をサポートし、それらのロック設定を使用してロックされたアイテムへの各種タイプのアクセスを制御する場合に設定します。ユーザー・レベルのロックは、トランザクション・ロックに対して直交し、特定のトランザクション、セッションまたは接続の範囲を超えて存続しますが、これは、ロックの参照先が不明になった後、ストア自身ではクリーンアップできない可能性があり、クライアント・アプリケーションがガベージ・コレクションを実行する必要があるということです。 |
|
|
|
ユーザー・ロックがロックされたパス名の下にあるサブツリー全体へのアクセスを制御することをストアが許可する場合に設定します。より単純なロック・モデルでは、ロック・セマンティクスが特定のパス名のみに適用され、親または子に置かれたロックにのみ依存します(要求した操作が暗黙的にこれらの親または子を変更する必要がある場合を除きます)。 |
|
|
|
ロックがあるモードから別のモードにアップグレードまたはダウングレードすることをストアがサポートする場合に設定します。 |
|
|
|
ストアが少なくとも線形バージョニングおよびバージョン管理をサポートする場合に設定します。バージョンが異なる同じパス名は単調バージョン番号によって識別され、バージョン非修飾パス名が最新バージョンを表します。 |
|
|
|
ストアが、バージョンが異なるパス名の階層ネームスペースをサポートする場合に設定します。 |
|
|
|
ストアで、ソフト削除(パス名を削除して通常の操作で非表示にするが、後でパス名をリストアする機能(新規作成操作で上書きされない場合)を保持する)をサポートする場合に設定します。ストアでは、ソフト削除されたパス名のパージ(完全な削除)、およびソフト削除された項目を表示するナビゲーション・モードもサポートされます。 |
|
|
|
ストアが、パス名のコンテンツのうち特定タイプのセキュア・ハッシュ(通常、 |
|
|
|
ストアが「コンテンツ・ベースのアドレッシング」を許可する場合に設定します。これは、パス名ではなくコンテンツ・ハッシュに基づいてコンテンツ項目を探す機能です。 |
|
|
|
クライアントが、指定したストア項目が選択述語を満たすかどうかを示す論理ブール値を戻すフィルタ関数(下記のシグネチャに適合するPL/SQLファンクション)を渡すことをストアが許可する場合に設定します。フィルタリングをサポートするストアは、フィルタリング・ロジックを実装内部に組み込むことによって、さらに効率的に項目リスト、ディレクトリ・ナビゲーションおよび削除を実行できる可能性があります。フィルタリングがサポートされていない場合、クライアントは必要以上の項目を取得でき、効率は下がりますが、自分でフィルタリング・チェックを実行できます。 フィルタ述語は次のシグネチャがある関数です。 function filterFunction( path IN VARCHAR2, store_name IN VARCHAR2, opcode IN INTEGER, item_type IN INTEGER, properties IN DBMS_DBFS_CONTENT_PROPERTIES_T, content IN BLOB) RETURN INTEGER; このシグネチャに準拠する任意のPL/SQLファンクションは、ストア項目のコンテンツおよびプロパティを調べ、項目が現在の操作の選択基準を満たすかどうかを判断できます。0 (ゼロ)以外の戻り値の場合は、 |
|
|
|
クライアントがコンテンツに基づいて |
|
|
|
クライアントが、問合せ操作(変化しないGETPATHプロシージャ、LISTファンクション、SEARCHファンクション)でフラッシュバック・タイムスタンプを使用することをストアが許可する場合に設定します。 |
|
|
|
ストアが操作単位のプロパティ(個別の項目に関連付けられているプロパティではなく、現在の操作に関するストアの動作を制御)を許可する場合に設定します。 |
|
|
|
ストアが、コンテンツの名前付き、読取り専用スナップショットの使用を許可する場合に設定します。適切な手段(コンテンツの即時コピーの作成、またはコピー・オン・ライトの使用など)を使用し、スナップショットと親コンテンツ・ビュー間の依存関係を管理することで、スナップショットを実装することはプロバイダが決定します。 |
|
|
|
ストアが、コンテンツの名前付き、書込み可能なクローンの使用を許可する場合に設定します。適切な手段(コンテンツの即時コピーの作成、またはコピー・オン・ライトの使用など)を使用し、クローンと親コンテンツ・ビュー間の依存関係を管理することで、クローンを実装することはプロバイダが決定します。 |
|
|
|
ストアが、 |
|
|
|
ストアが、ファイルに対する「パスなし」でコンテンツIDベースのアクセスを許可する場合に設定します(このモデルにはディレクトリ、リンク、参照の概念がありません)。 |
|
|
|
ストアが、コンテンツIDによっても識別されるファイル・コンテンツ要素へのパス名のレイジー・バインドを許可する場合に設定します。この機能は、 |
ロック・タイプ
ロックをサポートするストアは、LOCK_READ_ONLY
、LOCK_WRITE_ONLY
およびLOCK_READ_WRITE
という3タイプのロックを実装する必要があります。
ユーザー・ロック(これら3タイプのうちの1タイプ)は、ユーザーが指定するlock_data
と関連付けることができます。これはストアによって解釈されませんが、クライアント・アプリケーションが独自の目的で使用できます。たとえば、クライアント・アプリケーションの一部が、失効ロックのガベージ・コレクションや明示的なロックのブレークなど、アクションを制御するために後からこの情報を使用する必要があることを想定すると、ユーザー・データはロックされた時間を示すことができます。
最も単純なロック・モデルでは、LOCK_READ_ONLY
によりパス名の明示的な変更は一切できません(ただし、暗黙的な変更、および親/子の変更は可能です)。LOCK_WRITE_ONLY
によりパス名の明示的な読取りは一切できません(ただし、暗黙的な読取り、および親/子パス名の読取りは可能です)。LOCK_WREAD_WRITE
では両方可能です。
すべてのロックは、ロック操作を実行する「プリンシパル」に関連付けられています。ロックをサポートするストアは、この情報を保持し読取りまたは書込みロック・チェックに使用することが要求されています(opt_locker
を参照)。
より複雑なロック・モデル(複数の読取りロック、パス名階層全体でのロック・スコーピング、ロック変換、グループ・ロックおよびその他の方策)も可能ですが、現在はコンテンツ・インタフェースで定義されていません。
表47-6 DBMS_DBFS_CONTENTの定数 - ロック・タイプ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
読取り専用としてロック |
|
|
|
書込み専用としてロック |
|
|
|
読取り/書込みとしてロック |
標準プロパティ
標準プロパティは、ある程度の譲歩付きで、すべてのストアが(コンテンツ・インタフェースに説明されている方法で)サポートする必要のあるすべてのコンテンツ・パス名と関連付けられている、明確に定義された必須プロパティです。たとえば、読取り専用ストアは、modification_time
またはcreation_time
を実装する必要はありませんが、固定スキーマのある表に対して作成されたストアは、必要に応じた数のこれらのプロパティに適切なデフォルトを選択することなどが可能です。
すべての標準プロパティは略式にSTD
ネームスペースを使用します。クライアントおよびストアがこのネームスペースを使用して独自のプロパティを定義すると、以後の競合の原因となるため、使用を避ける必要があります。
標準プロパティのメニューは、長期間非常に安定している必要があります。
表47-7 DBMS_DBFS_CONTENTの定数 - 標準プロパティ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
UTCの |
|
|
|
|
|
|
|
|
|
|
|
UTCの |
|
|
|
|
|
|
|
|
|
|
|
UTCの |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UTCの |
|
|
|
|
|
|
|
STD_PARENT_GUID(path name) == STD_GUID(parent(path name)) |
|
|
|
|
オプションのプロパティ
オプションのプロパティは、すべてのストアが自由に(ただしDBFSコンテンツAPIに説明されている方法にかぎり)サポートできるすべてのコンテンツ・パス名と関連付けられている、明確に定義された、必須ではないプロパティです。クライアントは、オプションのプロパティをいずれもサポートしないストアに対応する準備が必要です。
すべてのオプションのプロパティは略式に「opt:」ネームスペースを使用します。クライアントおよびストアがこのネームスペースを使用して独自のプロパティを定義すると、以後の競合の原因となるため、使用を避ける必要があります。
オプションのプロパティのメニューは、時間の経過とともに拡張される必要があります。
表47-8 DBMS_DBFS_CONTENTの定数 - オプションのプロパティ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
プロパティ・アクセス・フラグ
プロパティを取得または設定するコンテンツ・インタフェース・メソッドは、プロパティ・アクセス・フラグを組み合せて、単一のインタフェース・コールにある様々なネームスペースからプロパティをフェッチできます。
表47-9 DBMS_DBFS_CONTENTの定数 - プロパティ・アクセス・フラグ
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
なし: クライアントがプロパティを必要とせず、他の理由(パス名の存在またはロック可能性の検証、データ・アクセスなど)でコンテンツ・アクセス・メソッドを起動するときに使用します。 |
|
|
|
必須: クライアントが標準プロパティを必要とするときに使用します。このフラグが指定された場合、すべての標準プロパティが取得されます。 |
|
|
|
オプション: クライアントがオプションのプロパティを必要とするときに使用します。このフラグが指定された場合、すべてのオプションのプロパティが取得されます。 |
|
|
|
ユーザー定義: クライアントがユーザー定義のプロパティを必要とするときに使用します。このフラグが指定された場合、すべてのユーザー定義のプロパティが取得されます。 |
|
|
|
すべて: 標準、オプションおよびユーザー定義のすべてのプロパティの組合せに対する別名。 |
|
|
|
コンテンツ: クライアントがデータ・アクセスのみを必要とし、プロパティを必要としない場合に使用します。 |
|
|
|
固有: クライアントが、各種プロパティ・ネームスペースの異なるサブセットの様々な組合せが必要とされ、フェッチする特定のプロパティの名前が引数としてコンテンツ・インタフェース・メソッド・コールに渡され、これらのプロパティ値のみがフェッチされてクライアントに戻される場合に使用します。これは、アクセス可能なプロパティが多数あり、クライアントがその内の少数のみを必要とする(そして事前にそれら重要なプロパティの名前がわかっている)場合に役立ちます。
|
操作コード
DBFSコンテンツAPIのすべての操作は、抽象的な操作コードとして表されます。
特定のパス名にある指定したプリンシパルによって特定の操作が起動できるかどうかを検証するためにCHECKACCESSファンクションを起動することによって、クライアントは、これらの操作コードを直接また明示的に使用できます。
表47-10 DBMS_DBFS_CONTENTの定数 - 操作コード
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
パス項目を作成します。 |
|
|
|
ファイルを作成します。 |
|
|
|
ソフト・リンクを作成します。 |
|
|
|
参照(ハード・リンク)を作成します。 |
|
|
2 |
ソフト削除、パージおよびリストア操作はすべて |
|
|
|
ファイルを削除します。 |
|
|
|
ディレクトリを削除します。 |
|
|
|
ソフト削除したパス項目をリストアします。 |
|
|
|
ソフト削除したパス項目をパージします。 |
|
|
3 |
パス項目から読み取ります。 |
|
|
|
読取り操作または更新操作のためにパス項目を取得します。 |
|
|
|
パス項目を書き込みます。 |
|
|
|
パス項目にPUT(書込み)します。 |
|
|
5 |
パス項目の名前を変更します。 |
|
|
|
名前の変更元で実行する操作。 |
|
|
|
名前の変更先で実行する操作。 |
|
|
|
パス項目名を設定します。 |
|
|
6 |
パスのリストを実行します。 |
|
|
|
検索を実行します。 |
|
|
8 |
パス項目をロックします。 |
|
|
9 |
パス項目をロック解除します。 |
|
|
10 |
|
|
|
11 |
他の操作インタフェースのいずれにも該当しない様々なストア操作のための包括的なカテゴリ。 |
DBFSコンテンツAPI操作では、次に挙げるトップレベルの例外のいずれかが発生する可能性があります。
クライアントは、元となるエラー・シグナル・コードの特定のストア実装を心配せずに、エラー・ハンドラで特定の例外に対してプログラムできます。
ストア・サービス・プロバイダは、必要に応じて、内部的な例外を次の例外タイプのいずれかにトラップまたはラップするよう最善の努力をする必要があります。
表47-11 DBMS_DBFS_CONTENTの例外
例外 | コード | 説明 |
---|---|---|
|
|
すでに存在する指定したパス名。 |
|
|
指定したパス名の親が存在しません。 |
|
|
指定したパス名が存在しないか、または無効です。 |
|
|
ストアにサポートされていない操作が起動されました。 |
|
|
操作が無効な引数で起動されました。 |
|
|
現在の操作で失敗したアクセス制御チェック。 |
|
|
現在の操作がロック競合チェックに失敗しました。 |
|
|
無効なストア名が指定されました。 |
|
|
無効なマウント・ポイントが指定されました。 |
|
|
無効なプロバイダ・パッケージが指定されました。 |
|
|
読取り専用マウントまたはストアで変更中の操作が起動されました。 |
実装
DBMS_DBFS_CONTENTインタフェースとプロバイダSPIの相互接続は1対多の接続可能なアーキテクチャであるため、インタフェースが動的SQLを使用してプロバイダSPIでメソッドを起動し、ランタイム・エラーの原因になる可能性があります。
DBMS_DBFS_CONTENT
インタフェースが特定のプロバイダSPIを接続または接続解除するタイミングを示す明示的なINIT
またはFINI
メソッドはありません。プロバイダSPIは、任意のSPIエントリポイントで自動初期化が可能である必要があります。
サービス・プロバイダが実行するすべての操作は、自己完結している点で「ステートレス」です。なんらかの理由によりステートを維持する必要がある場合、必要に応じて問合せが可能な補助表などのデータ構造でステート維持する必要があります。
パス名
プロバイダSPIで使用されるすべてのパス名は、ペア形式でストア修飾されており(store_name
、pathname
)、この形式ではパス名はストアのネームスペースをルートとします。
コンテンツ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プロシージャ、PROPVARCHAR2ファンクションおよび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_DBFS_CONTENT
インタフェースはディレクトリ・パス名の内容をリストまたは検索でき、オプションとして、サブディレクトリに再帰的にリストまたは検索、ソフト削除された項目を表示、入力されたタイムスタンプの「時点」のフラッシュバックの使用、リストまたは検索述語に基づいてストア内で項目を内または外にフィルタリングできます。
ロック操作
DBMS_DBFS_CONTENT
インタフェースのクライアントは、ユーザー・レベルのロックを任意の有効なパス名(ストア機能サポートの対象)に適用、ロックをユーザー・データと関連付け、およびその後これらのパス名をロック解除できます。
ロックされた項目のステータスは、様々なオプションのプロパティを使用して利用できます(opt_lock
に関する前述の説明に注意してください)。
ロックおよびロック解除操作を整合性のある方法で実行することは、ストアの責任です(ユーザー定義のロック・チェックをサポートすることが前提)。
アクセス・チェック操作
この操作は、指定したパス名(store_name
、path
、pathtype
)が、principal
パラメータを利用する、ストアでのユーザーによる操作によって操作可能かどうかを確認します(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」の様々なDBMS_DBFS_CONTENT.OP_XXX
操作コードを参照)。アクセス制御をサポートするストアでも、内部的にこれらのチェックを実行してセキュリティが保証されるため、これは、DBMS_DBFS_CONTENT
インタフェースに便利なファンクションです。
DBMS_DBFS_CONTENT
パッケージでは、レコード
・タイプおよび表
タイプを定義します。
使用上の注意
DBMS_DBFS_CONTENT_PROPERTY_T
とPROPERTY_T
の間には、おおまかな対応があります。前者は完全プロパティ・タプルを説明するSQLオブジェクト・タイプであり、後者はプロパティ値コンポーネントのみを説明するPL/SQLレコード・タイプです。
同様に、DBMS_DBFS_CONTENT_PROPERTIES_T
とPROPERTIES_T
の間にもおおまかな対応があります。前者はSQLネストした表タイプであり、後者はPL/SQLハッシュ表タイプです。
動的SQLコール規則は、SQLタイプの使用を強制しますが、ハッシュ表タイプとしてはPL/SQLコードのほうが実装に都合がよい場合があります。
DBMS_DBFS_CONTENT
インタフェースは、DBMS_DBFS_CONTENT_PROPERTIES_T
とPROPERTIES_T
間で変換する便利なユーティリティ・ファンクションを提供します(propertiesT2HおよびpropertiesH2Tを参照)。
クライアントは、使用可能なストアのリストについてDBMS_DBFS_CONTENT
インタフェースに問合せ、指定したパス名へのアクセスをどのストアが処理するかを判断し、ストアの機能セットを決定します。
このタイプは、ストアのマウント・ポイントおよびプロパティを説明します。
このタイプは、ストアのマウント・ポイントおよびプロパティを説明します。
構文
TYPE mount_t IS RECORD ( store_name VARCHAR2(32), store_id NUMBER, provider_name VARCHAR2(32), provider_pkg VARCHAR2(32), provider_id NUMBER, provider_version VARCHAR2(32), store_features INTEGER, store_guid NUMBER, store_mount NAME_T, mount_properties DBMS_DBFS_CONTENT_PROPERTIES_T);
フィールド
表47-13 MOUNT_Tのフィールド
フィールド | 説明 |
---|---|
|
ストアの名前。 |
|
ストアのID。 |
|
コンテンツ・ストアの名前。 |
|
コンテンツ・ストアのPL/SQLパッケージ名。 |
|
コンテンツ・ストアの一意の識別子。 |
|
コンテンツ・ストアのバージョン番号。 |
|
このコンテンツ・ストアによってサポートされる機能。 |
|
ストアのこのインスタンスに対する一意のID。 |
|
ストア・インスタンスがマウントされる場所。 |
|
このマウント・ポイントのプロパティ(DBMS_DBFS_CONTENT_PROPERTIES_T表タイプを参照)。 |
PATH_ITEM_T
は、関連付けられているすべての標準およびオプションのプロパティを含む、ストアにある(ストア、マウント)修飾パスを説明するタプルです。
構文
TYPE path_item_t IS RECORD ( store NAME_T, mount NAME_T, pathname PATH_T, pathtype VARCHAR2(32), filedata BLOB, std_access_time TIMESTAMP, std_acl VARCHAR2(1024), std_change_time TIMESTAMP, std_children NUMBER, std_content_type VARCHAR2(1024), std_creation_time TIMESTAMP, std_deleted INTEGER, std_guid INTEGER, std_modification_time TIMESTAMP, std_owner VARCHAR2(32), std_parent_guid INTEGER, std_referent VARCHAR2(1024), opt_hash_type VARCHAR2(32), opt_hash_value VARCHAR2(128), opt_lock_count INTEGER, opt_lock_data VARCHAR2(128), opt_locker VARCHAR2(128), opt_lock_status INTEGER, opt_version INTEGER, opt_version_path PATH_T, opt_content_id CONTENT_ID_T);
フィールド
表47-14 PATH_ITEM_Tのフィールド
フィールド | 説明 |
---|---|
|
ストアの名前。 |
|
ストアのインスタンスがマウントされる場所。 |
|
項目へのパス名。 |
|
オブジェクト・パスのタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
パス項目でデータにアクセスするために |
|
パス名のコンテンツの最終アクセス時間。 |
|
アクセス制御リスト(標準ACL構文)。 |
|
パス名のメタデータの最終変更時間。 |
|
ディレクトリまたはフォルダのパスが持つ子ディレクトリ/フォルダの数(このプロパティは、 |
|
通常 |
|
項目が作成された時刻。一度設定すると、この値はパス名の使用期間中同じままです。 |
|
パス名がソフト削除され、パージされていない場合に0(ゼロ)以外の値に設定します(「DBMS_DBFS_CONTENTの定数: ストア機能」を参照)。 |
|
パス名に対するストア固有の一意の識別子。クライアントは別のストアでもGUIDが一意であることに依存できませんが、指定したstore-name、store-specific-pathnameには、使用期間中安定した一意のGUIDがあります。 |
|
パス名と関連付けられたデータの最終変更時間。 |
|
パス名のクライアントが提供する(または暗黙的な)所有者名。 |
|
パス名の親に対するストア固有の一意の識別子。クライアントは別のストアでもGUIDが一意であることに依存できませんが、指定したstore-name、store-specific-pathnameには、使用期間中安定した一意のGUIDがあります。 std_parent_guid(pathname) == std_guid(parent(pathname)) |
|
|
|
|
|
パス名のコンテンツを説明するタイプ |
|
パス名に配置される、互換性のあるロックの数。異なるプリンシパルがパスに互換性のある(読取り)ロックを配置することが許可される場合、ロックの数が正しく維持できるように、 |
|
ユーザー・ロックと関連付けられ、ストアによって解釈されない、クライアントが提供するユーザー・データ。 |
|
パス名にユーザー・ロックを適用した、1つ以上の暗黙的なまたはユーザー指定のプリンシパル。 |
|
パス名で現在適用されているロックのタイプを説明する、 |
|
パス名の線形バージョニングに対する順序番号。 |
|
パス名の階層バージョニングに対するバージョン・パス名。 |
|
ファイル要素に対する、文字列化されたプロバイダによって生成されたストア固有の一意のコンテンツID(ファイル要素は、オプションでパスと関連付けられていない場合もあります。「DBMS_DBFS_CONTENTの定数: ストア機能」の |
PROP_ITEM_T
は、ストアにある(store
、mount
)修飾パスを説明するタプルで、すべてのユーザー定義プロパティが関連付けられ、個別の(名前、値、タイプ)タプルに拡張されています。
このタイプは、DBMS_DBFS_CONTENT
インタフェースに登録され、管理されるストアを説明します。
表47-18 DBMS_DBFS_CONTENTパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
指定したパスでユーザー( |
|
ユーザー指定のパッケージが、適切なシグネチャですべての |
|
ディレクトリを作成します。 |
|
ファイルを作成します。 |
|
ソース・ファイル・システム要素への新しい参照を作成します。 |
|
既存のファイル・システム要素への物理的なリンクを作成します。 |
|
機能ビットが設定された整数値を与えられると、 |
|
指定したコンテンツIDによって指定されるファイルを削除します。 |
|
ディレクトリを削除します。 |
|
ファイルを削除します。 |
|
機能ビットが与えられると、その機能名の |
|
|
|
デフォルトのコンテキストのACLパラメータを戻します。 |
|
デフォルトのコンテキストの |
|
デフォルトのコンテキストを戻します。 |
|
デフォルトのコンテキストの |
|
デフォルトのコンテキストの |
|
マウント・ポイントごとにストアの機能を戻します。 |
|
ストア名ごとにストアの機能を戻します。 |
|
パスごとにストアの機能を戻します。 |
|
完全な絶対パス名を戻します。 |
|
既存のパス項目(ファイルやディレクトリなど)を戻します。 |
|
基礎となるGUIDが元のストアにある場合、ストア修飾されたパス名を戻します。 |
|
操作が更新のためであることを示しており、実行された場合、プロバイダは行のロックを待機せず例外( |
|
マウント・ポイントによりストアを戻します。 |
|
名前によりストアを戻します。 |
|
パスによりストアを戻します。 |
|
|
|
|
|
ストアと関連付けられている標準化された形式で |
|
指定したフィルタおよびその他の基準に適合する指定したパスでのパス項目を示します。 |
|
すべてのマウントのすべてのパス項目を示します。 |
|
すべてのマウントのすべてのパス項目に対するすべてのプロパティの表を戻します。 |
|
すべての使用可能なマウント・ポイント、そのバックエンドのデータストアおよびストア機能を示します。 |
|
すべての使用可能なストアとその機能を示します。 |
|
指定した有効なパス名にユーザー・レベルのロックを適用します。 |
|
以前に登録されたストアをマウントし、マウント・ポイントにバインドします。 |
|
ストア固有または完全絶対パス名を正規化された形式に変換します。 |
|
様々なタイプのいずれかを取り、PROPERTY_Tを戻すコンストラクタを提供します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。 |
|
指定したパス項目の任意のソフト削除したバージョンをパージします。 |
|
新しいパス項目を作成します。 |
|
新しいストアを登録します。 |
|
パスの名前変更または移動を行います。 |
|
パスおよびフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。 |
|
指定したパスおよびフィルタ条件に適合するすべてのソフト削除されたパス項目をリストアします。 |
|
指定したパスおよびフィルタ条件に適合するパス項目を検索します。 |
|
デフォルトのコンテキストのACLパラメータを設定します。 |
|
デフォルトのコンテキストの「時点」パラメータを設定します。 |
|
デフォルトのコンテキストを設定します。 |
|
デフォルトのコンテキストの「所有者」パラメータを設定します。 |
|
デフォルトのコンテキストの「プリンシパル」パラメータを設定します。 |
|
コンテンツIDによって表されるパス項目にパス名を割り当てます。 |
|
統計情報収集を有効化および無効化します。 |
|
|
|
ファイル・システム領域使用統計情報を問い合せます。 |
|
評価結果を含む |
|
SETTRACEプロシージャによって設定される現在のトレースの「重大度」が指定したトレース・レベルと同じ高さであるかどうかを判断します。 |
|
LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。 |
|
登録されたストアをアンマウントします。 |
|
ストアの登録を解除します。 |
このファンクションは、指定したパスでユーザー(principal
)が指定操作を実行できるかどうかをレポートします。これによって、操作の実行を試みることなく操作の妥当性を検証できます。CHECKACCESS
が0を戻す場合、この操作を実行するために起動されたサブプログラムはエラーによって失敗します。
構文
DBMS_DBFS_CONTENT.CHECKACCESS ( path IN VARCHAR2, pathtype IN INTEGER, operation IN VARCHAR2, principal IN VARCHAR2, store_name IN VARCHAR2 DEFAULT NULL) RETURN BOOLEAN;
パラメータ
表47-19 CHECKACCESSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
アクセスのチェックを行うパスの名前。 |
|
|
|
チェックする操作(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」を参照)。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
|
ストアの名前。 |
推定DBMS_DBFS_CONTENT_SPI
準拠パッケージという名前を付与されたこのファンクションまたはプロシージャは、パッケージが適切なシグネチャがあるすべてのプロバイダ・サブプログラムを実装し、準拠についてレポートするかどうかをチェックします。
構文
DBMS_DBFS_CONTENT.CHECKSPI ( package_name IN VARCHAR2) RETURN CLOB; DBMS_DBFS_CONTENT.CHECKSPI ( schema_name IN VARCHAR2, package_name IN VARCHAR2) return clob; DBMS_DBFS_CONTENT.CHECKSPI ( package_name IN VARCHAR2, chk IN OUT NOCOPY CLOB); DBMS_DBFS_CONTENT.CHECKSPI ( schema_name in VARCHAR2, package_name in VARCHAR2, chk in out nocopy CLOB);
使用上の注意
ファンクション形式は、分析の結果とともにセッション継続時間のキャッシュされた一時LOBを戻します。コール元は、必要に応じてこのLOBの使用期間全体を管理する必要があります。
プロシージャ形式は、分析の結果をchk
LOBパラメータに生成しますが、渡された値がNULL
の場合は、DBMS_DBFS_CONTENT
インタフェース・トレースが有効であれば、結果はフォアグラウンド・トレース・ファイルに書き込まれます。いずれのトレースも有効ではなく、有効なLOBが渡された場合、チェッカは分析の有効な指示を提供しません(重大なエラーが発生した場合に発生する例外を除く)。
schema_name
がNULL
の場合は、標準の名前解決規則(現在のスキーマ、プライベート・シノニム、パブリック・シノニム)を使用して、分析に適切なパッケージを検索します。
このプロシージャは、ディレクトリを作成します。
構文
DBMS_DBFS_CONTENT.CREATEDIRECTORY ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, recurse IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.CREATEDIRECTORY ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, recurse IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-21 CREATEDIRECTORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ディレクトリへのパス名。 |
|
|
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
0の場合、再帰的に実行せず、それ以外の場合は、指定したディレクトリの上に再帰的にディレクトリを作成します。 |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、ファイルを作成します。
構文
DBMS_DBFS_CONTENT.CREATEFILE ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content IN OUT NOCOPY BLOB, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_DATA), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.CREATEFILE ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, content IN OUT NOCOPY BLOB, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_DATA), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-22 CREATEFILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイルへのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、ソース・ファイル・システム要素(ファイルやディレクトリなど)への新しい参照を作成します。生成される参照はソース要素を指しますが、ソース要素と直接メタデータを共有しません。これは、UNIXファイル・システムのシンボリック・リンクと似ています。
構文
DBMS_DBFS_CONTENT.CREATELINK ( srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.CREATELINK ( srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-23 CREATELINKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
リンク先のファイル・システム・エントリ。 |
|
作成する新しいリンク要素のパス。 |
|
|
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、すでに存在するファイル・システム要素(ファイルやディレクトリなど)への物理的なリンクを作成します。生成されるエントリは、srcPath
パラメータの値と同じメタデータ構造を共有するため、ファイル・システム要素の参照数を増加する点でも類似しています。これは、UNIXファイル・システムのハード・リンクと似ています。
構文
DBMS_DBFS_CONTENT.CREATEREFERENCE ( srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.CREATEREFERENCE ( srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, prop_flags IN INTEGER DEFAULT PROP_STD, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-24 CREATEREFERENCEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
リンク先のファイル・システム・エントリ。 |
|
作成する新しいリンク要素のパス。 |
|
|
|
どのプロパティが設定されるか、戻されるかを決定します。デフォルトは |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
機能ビットが設定された整数値を与えられると、このファンクションはFEATURE_T
レコードとして機能ビットのFEATURES_T
表を戻します。
このプロシージャは、指定したコンテンツIDによって指定されるファイルを削除します。
構文
DBMS_DBFS_CONTENT.DELETECONTENT ( store_name IN VARCHAR2 DEFAULT NULL, contentID IN RAW, filter IN VARCHAR2 DEFAULT NULL, soft_delete IN BOOLEAN DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-26 DELETECONTENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
削除するファイルの一意の識別子。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、ディレクトリを削除します。recurse
がゼロ以外の場合、ディレクトリのすべての要素を再帰的に削除します。フィルタがある場合は、ディレクトリのどの要素が削除されるかを決定します。
構文
DBMS_DBFS_CONTENT.DELETEDIRECTORY ( path IN VARCHAR2, filter IN VARCHAR2 DEFAULT NULL, soft_delete IN BOOLEAN DEFAULT NULL, recurse IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-27 DELETEDIRECTORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ディレクトリへのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。 |
|
0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルを再帰的に削除します。 |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、指定したファイルを削除します。
構文
DBMS_DBFS_CONTENT.DELETEFILE ( path IN VARCHAR2, filter IN VARCHAR2 DEFAULT NULL, soft_delete IN BOOLEAN DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-28 DELETEFILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイルへのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(「削除操作」を参照)。 |
|
ストアの名前。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、デフォルトのコンテキストのACLパラメータを戻します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストの「時点」パラメータを戻します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストを戻します。コンテキストに含まれる情報は、引数によって様々なメソッド・コールに明示的に挿入でき、個別の操作に対してファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストの「所有者」パラメータを戻します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストの「プリンシパル」パラメータを戻します。この含まれた情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、既存のパス項目(ファイルやディレクトリなど)を戻します。これには、データとメタデータ(プロパティ)の両方が含まれます。
クライアントは(prop_flags
を使用して)特定のプロパティが戻されるように要求できます。ファイル・パス名は、prop_flags
でprop_data
ビットマスクを使用してBLOB
ロケータを指定する(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)か、または1つ以上のRAW
バッファを渡すことによって、読み取れます。
forUpdate
が0の場合、このプロシージャは、ストアにより「時点」スタイルのフラッシュバック問合せを実行するために使用できるctx
の一部として、有効なasof
タイムスタンプ・パラメータも受け入れます。GETPATH
プロシージャの変化形では、これらのモードの操作はサポートされません。
構文
DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, forUpdate IN BOOLEAN DEFAULT FALSE, deref IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, forUpdate IN BOOLEAN DEFAULT FALSE, deref IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, amount IN OUT NUMBER, offset IN NUMBER, buffers OUT NOCOPY RAW, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, amount IN OUT NUMBER, offset IN NUMBER, buffers OUT NOCOPY RAW, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, amount IN OUT NUMBER, offset IN NUMBER, buffers OUT NOCOPY DBMS_DBFS_CONTENT_RAW_T, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, amount IN OUT NUMBER, offset IN NUMBER, buffers OUT NOCOPY DBMS_DBFS_CONTENT_RAW_T, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-38 GETPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パス項目へのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
入力時に読み取られるバイト数。出力時に読み取られるバイト数。 |
|
読取りを開始するバイト・オフセット。 |
|
書込み先のバッファ。 |
|
書込み先のバッファ。 |
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
元になる読取り専用操作(またはその読取り専用サブコンポーネント)が実行される「時点」タイムスタンプ。 |
|
パス項目に対する排他的書込みアクセス権限を示すためにロックを取得する必要があることを指定します。 |
|
0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照であることが条件です。 |
|
ストアの名前。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、操作が更新のためであることを示しており、実行された場合(「DBMS_DBFS_CONTENTの定数: ストア機能」のFEATURE_NOWAIT
を参照)、プロバイダは行のロックを待機せず例外(ORA-00054
)を戻すことができます。
構文
DBMS_DBFS_CONTENT.GETPATHNOWAIT ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), deref IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.GETPATHNOWAIT ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), deref IN BOOLEAN DEFAULT FALSE, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-41 GETPATHNOWAITプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パス項目へのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
どのプロパティが戻されるかを決定します。デフォルトは |
|
元になる読取り専用操作(またはその読取り専用サブコンポーネント)が実行される「時点」タイムスタンプ。 |
|
0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照であることが条件です。 |
|
ストアの名前。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、DBMS_DBFS_CONTENT
統計情報収集に関する情報を戻します。
このファンクションは、指定したフィルタおよびその他の基準に適合する指定したパスでのパス項目を示します。
構文
DBMS_DBFS_CONTENT.LIST ( path IN VARCHAR2, filter IN VARCHAR2 DEFAULT NULL, recurse IN INTEGER DEFAULT 0, asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL) RETURN DBMS_DBFS_CONTENT_LIST_ITEMS_T PIPELINED;
このプロシージャは、ユーザー・レベルのロックを指定した有効なパス名(ストア機能サポートの対象)に適用し、オプションとしてユーザー・データをロックと関連付けます。
構文
DBMS_DBFS_CONTENT.LOCKPATH ( path IN VARCHAR2, lock_type IN INTEGER DEFAULT LOCK_READ_ONLY, lock_data IN VARCHAR2 DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-47 LOCKPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイル項目へのパス名。 |
|
いずれかの利用可能なロック・タイプ(「DBMS_DBFS_CONTENTの定数: ロックタイプ」を参照)。 |
|
ロックと関連付けられるオプションのユーザー・データ |
|
ストアの名前。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、以前に登録されたストアをマウントし、マウント・ポイントにバインドします。
構文
DBMS_DBFS_CONTENT.MOUNTSTORE ( store_mount in VARCHAR2 DEFAULT NULL, singleton in BOOLEAN DEFAULT FALSE, principal in VARCHAR2 DEFAULT NULL, owner in VARCHAR2 DEFAULT NULL, acl in VARCHAR2 DEFAULT NULL, asof in TIMESTAMP DEFAULT NULL, read_only in BOOLEAN DEFAULT FALSE);
パラメータ
表47-48 MOUNTSTOREプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
このストアをマウントするために使用するパス名。 |
|
マウントがシステムで単一のバックエンド・ストアかどうかを指定します。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
|
現在の操作によって(暗黙的にまたは明示的に)作成された新しい要素の所有者。 |
|
現在の操作によって(暗黙的にまたは明示的に)作成されたすべての新しい要素のACL。 |
|
元になる読取り専用操作(またはその読取り専用サブコンポーネント)が実行される「時点」タイムスタンプ。 |
|
マウントが読取り専用かどうかを指定します。 |
使用上の注意
マウントすると、/
store_mount
/xyz...
形式のパス名へのアクセスは、store_nameおよびそのコンテンツ・プロバイダにリダイレクトされます。
ストア・マウント・ポイントは一意で、構文的に有効なパス名コンポーネントである必要があります(具体的には、埋め込まれた/
がないNAME_T
)。
マウント・ポイントを指定しない(NULL
)場合、起動されたサブプログラムは、ストア名自体をマウント・ポイント名として使用しようとします(一意性および構文上の制約に従う)。
単一のストア、具体的にはコンテンツ・インタフェースが単一のバックエンド・ストアを管理するシナリオでは、特別な空のマウント・ポイントが使用でき、このような場合は、これらのアクセスをリダイレクトする方法に曖昧さがないため、クライアントは/xyz...
形式のフルパス名に直接対応できます。
単一のマウント・ポイントは、「singleton」というブール引数で示され、store_mount
引数は無視されます。
明らかに異なるマウント・ポイントに、同じストアを複数回マウントできます。
マウントのプロパティは、実行環境、具体的には特定のマウント・ポイントのプリンシパル、所有者、ACLおよびasof
を指定するために使用できます。マウントのプロパティは、読取り専用マウントの指定にも使用できます。フラッシュバック・マウントが(asof
により)指定されると、読取り専用マウントを示します。
このファンクションは、ストア固有または完全絶対パス名を正規化された形式に変換します。
パス名が絶対であり、「/
」で始まることを検証します。
複数の連続した「/
」を単一の「/
」に折りたたみます。
末尾の「/
」を削除します。
ストア固有の正規化されたパス名を、親パス名と末尾コンポーネント名という2つのコンポーネントに分割します。
完全な絶対の正規化されたパス名を、ストア名、親パス名、末尾コンポーネント名という3つのコンポーネントに分割します。
構文
DBMS_DBFS_CONTENT.NORMALIZEPATH ( path IN VARCHAR2, parent OUT NOCOPY VARCHAR2, tpath OUT NOCOPY VARCHAR2) RETURN VARCHAR2; DBMS_DBFS_CONTENT.NORMALIZEPATH ( path IN VARCHAR2, store_name OUT NOCOPY VARCHAR2, parent OUT NOCOPY VARCHAR2, tpath OUT NOCOPY VARCHAR2) RETURN VARCHAR2;
このファンクションは、様々なタイプのいずれかを取り、PROPERTY_Tを戻すコンストラクタを提供します。
このプロシージャは、パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。
このプロシージャは、指定したパス項目の任意のソフト削除したバージョンをパージします。
このプロシージャは、新しいパス項目を作成します。
構文
DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content IN OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, content IN OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT + PROP_DATA), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, amount IN NUMBER, offset IN NUMBER, buffer IN RAW, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, amount IN NUMBER, offset IN NUMBER, buffer IN RAW, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, written OUT NUMBER, offset IN NUMBER, buffers IN DBMS_DBFS_CONTENT_RAW_T, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.PUTPATH ( path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, written OUT NUMBER, offset IN NUMBER, buffers IN DBMS_DBFS_CONTENT_RAW_T, prop_flags IN INTEGER DEFAULT (PROP_STD + PROP_OPT), store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-59 PUTPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイル項目へのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
読み取られるバイト数。 |
|
読取りを開始するバイト・オフセット。 |
|
書込み先のバッファ。 |
|
書込み先のバッファ。 |
|
どのプロパティが設定されるかを決定します。デフォルトは |
|
ストアの名前。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、ストア・サービス・プロバイダ(DBMS_DBFS_CONTENT_SPI
パッケージのシグネチャに準拠)を使用するプロバイダによってサポートされる新しいストアを登録します。このメソッドは、主に新しいストアを作成した後にサービス・プロバイダによって使用されます。
このプロシージャは、パスの名前変更または移動を行います。この操作は、同じストア内であれば、複数のディレクトリ階層やマウント・ポイント間で実行できます。
構文
DBMS_DBFS_CONTENT.RENAMEPATH ( oldPath IN VARCHAR2, newPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.RENAMEPATH ( oldPath IN VARCHAR2, newPath IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-61 RENAMEPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
名前変更前のパス名。 |
|
名前変更後のパス名。 |
|
|
|
ストアの名前。一意であることが必要です。 |
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、パスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。
このプロシージャは、指定したパスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。
このファンクションについて次に説明します。
構文
DBMS_DBFS_CONTENT.SEARCH ( path IN VARCHAR2, filter IN VARCHAR2 DEFAULT NULL, recurse IN INTEGER DEFAULT 0, asof IN TIMESTAMP DEFAULT NULL, store_name IN VARCHAR2 DEFAULT NULL, principal IN VARCHAR2 DEFAULT NULL) RETURN DBMS_DBFS_CONTENT_LIST_ITEMS_T PIPELINED;
このプロシージャは、デフォルトのコンテキストのACLパラメータを設定します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストの「時点」パラメータを設定します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストを設定します。コンテキストに含まれる情報は、引数によって様々なメソッド・コールに明示的に挿入でき、個別の操作に対してファイングレイン制御が可能です。
構文
DBMS_DBFS_CONTENT.SETDEFAULTCONTEXT ( principal IN VARCHAR2, owner IN VARCHAR2, acl IN VARCHAR2, asof IN TIMESTAMP);
このプロシージャは、デフォルトのコンテキストの「所有者」パラメータを設定します。この情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、デフォルトのコンテキストの「プリンシパル」パラメータを設定します。この含まれた情報は引数によって他のメソッド・コールに明示的に挿入でき、さらに細かいファイングレイン制御が可能です。
このプロシージャは、コンテンツIDによって表されるパス項目にパス名を割り当てます。
コンテンツIDベースのアクセスおよびレイジー・パス名バインドをサポートするストアおよびそのプロバイダは、既存のcontentID
を新しい「パス」と関連付けるSETPATHプロシージャ
もサポートします。
構文
DBMS_DBFS_CONTENT.SETPATH ( store_name IN VARCHAR2, contentID IN RAW, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, principal IN VARCHAR2 DEFAULT NULL); DBMS_DBFS_CONTENT.SETPATH ( store_name IN VARCHAR2, contentID IN RAW, path IN VARCHAR2, properties IN OUT NOCOPY PROPERTIES_T, principal IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-70 SETPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
関連付けるファイルの一意の識別子。 |
|
パス項目へのパス名。 |
|
|
|
現在の操作を起動するエージェント(プリンシパル)。 |
このプロシージャは、統計情報収集を有効化および無効化します。クライアントは、時間、カウントまたは両方のパラメータにNULL
以外の値を設定することによって、オプションとしてフラッシュ設定を制御できます。
このプロシージャは、ファイル・システム領域使用統計情報を問い合せます。プロバイダは、ストアに対してこのサブプログラムをサポートする必要があります(特に、ストアが複数の表、索引、LOBなどで構成される場合、領域使用率の決定に最善の試みが求められます)。
構文
DBMS_DBFS_CONTENT.SPACEUSAGE ( path IN VARCHAR2, blksize OUT INTEGER, tbytes OUT INTEGER, fbytes OUT INTEGER, nfile OUT INTEGER, ndir OUT INTEGER, nlink OUT INTEGER, nref OUT INTEGER, store_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-73 SPACEUSAGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイル項目へのパス名。 |
|
ストアを保持する自然表領域のブロック・サイズ。異なるブロック・サイズの複数の表領域を使用する場合、任意の有効なブロック・サイズが受け入れられます。 |
|
ストアを構成するすべてのセグメントに対して計算されたストアの合計サイズ(バイト単位)。 |
|
ストアを構成するすべてのセグメントに対して計算されたストアの空き領域または未使用領域のサイズ(バイト単位)。 |
|
ストアで現在使用可能なファイル数。 |
|
ストアで現在使用可能なディレクトリ数。 |
|
ストアで現在使用可能なリンク数。 |
|
ストアで現在使用可能な参照数。 |
|
ストアの名前。 |
このプロシージャは、現在のフォアグラウンド・トレース・ファイルにトレースを出力します。
構文
DBMS_DBFS_CONTENT.TRACE sev IN INTEGER, msg0 IN VARCHAR2, msg1 IN VARCHAR DEFAULT '', msg2 IN VARCHAR DEFAULT '', msg3 IN VARCHAR DEFAULT '', msg4 IN VARCHAR DEFAULT '', msg5 IN VARCHAR DEFAULT '', msg6 IN VARCHAR DEFAULT '', msg7 IN VARCHAR DEFAULT '', msg8 IN VARCHAR DEFAULT '', msg9 IN VARCHAR DEFAULT '', msg10 IN VARCHAR DEFAULT '');
使用上の注意
トレース情報は、トレース・レベル引数によって指定された様々なレベルの詳細で、フォアグラウンド・トレース・ファイルに書き込まれます。
グローバル・トレース・レベルは、「重大度」と「詳細」の2つのコンポーネントで構成されます。これらは、加算的ビットマスクと考えることができます。
「重大度」では、様々なコンポーネントの低いレベルのトレースと比較した場合、トップ・レベルの分離が可能であり、必要に応じてトレース量を増加できます。様々なレベルに関連付けられているセマンティクスはなく、ユーザーは選択する任意の重大度にトレースを設定できますが、経験則としてはトップ・レベルのAPIエントリと終了トレースには「1
」、内部操作には「2
」、非常に低いレベルのトレースには「3
」以上の重大度を使用することをお薦めします。
「詳細」は、タイムスタンプ、ショート・スタックなど、どれだけの追加情報が各トレース・レコードとともにダンプされるかを制御します。
このプロシージャは、LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。
このプロシージャは、名前またはマウント・ポイントにより、登録されたストアをアンマウントします。
構文
DBMS_DBFS_CONTENT.UNMOUNTSTORE ( store_name IN VARCHAR2 DEFAULT NULL, store_mount IN VARCHAR2 DEFAULT NULL, ignore_unknown IN BOOLEAN DEFAULT FALSE);