DBMS_DBFS_CONTENT_SPI
パッケージは、DBMS_DBFS_CONTENTストア・プロバイダの実装される必要のある仕様です。アプリケーション設計者は、この仕様に準拠するPL/SQLパッケージを作成して、DBMS_DBFS_CONTENT
を拡張し、カスタム・ストア・プロバイダを使用できます。
関連項目:
|
この章では、次の項目について説明します。
概要
セキュリティ・モデル
使用上の注意
DBMS_DBFS_CONTENT_SPI
パッケージは、DBMS_DBFS_CONTENTインタフェースの実装と個々のストア・プロバイダ間の内部契約、およびプロバイダのコードを含むパッケージを説明します。
PL/SQLでは、パッケージ・シグネチャ間でコンパイル時に宣言タイプの一致を許可しないため、ストア・プロバイダは略式でSPIに準拠する必要があります。つまり、同じメソッド・シグネチャとセマンティクスで、パッケージDBMS_DBFS_CONTENT_SPI
で指定されたすべてのメソッドを含むパッケージによってSPIを実装する必要があるということです。
明らかに、これらのプロバイダ・パッケージは他のメソッドを実装して、他のインタフェースを公開できますが、そのようなインタフェースをDBMS_DBFS_CONTENT
インタフェース自体で使用することはできません。
プロバイダSPIは単なる契約仕様であるため、DBMS_DBFS_CONTENT_SPI
にはパッケージ本体はなく、このパッケージを使用して、実際にメソッドを起動することはできません。
SPIは、DBMS_DBFS_CONTENT
インタフェースによって定義される様々な要素(定数、タイプ、例外)を参照します。
また、DBMS_DBFS_CONTENT
インタフェースによってエクスポートされたクライアントAPIとDBMS_DBFS_CONTENT
インタフェース自体が動作対象として予測するプロバイダ・インタフェース間にはほぼ1対1対応があります。
メソッドのネーミング規則での主な区別は、すべてのパス名参照が常にストア修飾されていることです。つまり、マウント・ポイントの概念と完全絶対パス名は、DBMS_DBFS_CONTENT
インタフェースがプロバイダSPIメソッドを起動する前に、このインタフェースによって正規化され、ストア修飾パス名に変換されているということです。
DBMS_DBFS_CONTENT
インタフェースとプロバイダSPIの相互接続は1対多の接続可能なアーキテクチャであり、インタフェースが動的SQLを使用してプロバイダSPIでメソッドを起動するため、これはランタイム・エラーの原因になる可能性があります。
実装
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ベースのアクセスではサポートされない操作もあり、アプリケーションは利用できる最も簡単な作成または削除機能のみに依存することが必要です。
他のDBMS_DBFS_CONTENT操作
この表は、他の操作の一覧と、その操作に関する参照先のリンクを示したものです。
表49-1: 他のDBMS_DBFS_CONTENT操作
他の操作 | 参照先 |
---|---|
作成 |
作成操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
削除 |
削除操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
Get (取出し)およびPut (挿入) |
GetおよびPut操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
名前の変更および移動 |
名前の変更および移動操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
ディレクトリ・ナビゲーションおよび検索 |
ナビゲーションおよび検索操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
ロック |
ロック操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
アクセスのチェック |
アクセスのチェック操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
表49-2 DBMS_DBFS_CONTENT_SPIパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
指定したパスでユーザー( |
|
ディレクトリを作成します。 |
|
ファイルを作成します。 |
|
既存のファイル・システム要素への物理的なリンクを作成します。 |
|
ソース・ファイル・システム要素への新しい参照を作成します。 |
|
指定したコンテンツIDによって指定されるファイルを削除します。 |
|
ディレクトリを削除します。 |
|
ファイルを削除します。 |
|
ストアの機能を戻します。 |
|
既存のパス項目(ファイルやディレクトリなど)を戻します。 |
|
基礎となるGUIDが元のストアにある場合、ストア修飾されたパス名を戻します。 |
|
操作が更新のためであることを示しており、実行された場合、プロバイダは行のロックを待機せず例外( |
|
ストアのIDを戻します。 |
|
ストアに関連付けられたバージョンを戻します。 |
|
ディレクトリ・パス名の内容をリストします。 |
|
指定した有効なパス名にユーザー・レベルのロックを適用します。 |
|
パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。 |
|
指定したパス項目の任意のソフト削除したバージョンをパージします。 |
|
新しいパス項目を作成します。 |
|
パスの名前変更または移動を行います。 |
|
パスおよびフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。 |
|
指定したパスおよびフィルタ条件に適合するすべてのソフト削除されたパス項目をリストアします。 |
|
指定したパスおよびフィルタ条件に適合するパス項目を検索します。 |
|
コンテンツIDによって表されるパス項目にパス名を割り当てます。 |
|
ファイル・システム領域使用統計情報を問い合せます。 |
|
LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。 |
このファンクションは、指定したパスでユーザー(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;
パラメータ
表49-3 CHECKACCESSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
アクセスのチェックを行うパスの名前。 |
|
|
|
チェックする操作(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」を参照)。 |
|
アクセス・チェックを行う対象のファイル・システム・ユーザー。 |
このプロシージャは、ディレクトリを作成します。
構文
DBMS_DBFS_CONTENT_SPI.CREATEDIRECTORY ( store_name IN VARCHAR2, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER, recurse IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-4 CREATEDIRECTORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ディレクトリへのパス名。 |
|
|
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
0の場合、再帰的に実行せず、それ以外の場合は、指定したディレクトリの上に再帰的にディレクトリを作成します。 |
|
ディレクトリを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、ファイルを作成します。
構文
DBMS_DBFS_CONTENT_SPI.CREATEFILE ( store_name IN VARCHAR2, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content IN OUT NOCOPY BLOB, prop_flags IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-5 CREATEFILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ファイルへのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
ファイルを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、すでに存在するファイル・システム要素(ファイルやディレクトリなど)への物理的なリンクを作成します。生成されるエントリは、srcPath
パラメータの値と同じメタデータ構造を共有するため、ファイル・システム要素の参照数を増加する点でも類似しています。これは、UNIXファイル・システムのハード・リンクと似ています。
構文
DBMS_DBFS_CONTENT_SPI.CREATELINK ( store_name IN VARCHAR2, srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-6 CREATELINKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
リンク先のファイル・システム・エントリ。 |
|
作成する新しいリンク要素のパス。 |
|
|
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
リンクを作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、ソース・ファイル・システム要素(ファイルやディレクトリなど)への新しい参照を作成します。生成される参照はソース要素を指しますが、ソース要素と直接メタデータを共有しません。これは、UNIXファイル・システムのシンボリック・リンクと似ています。
構文
DBMS_DBFS_CONTENT_SPI.CREATEREFERENCE ( srcPath IN VARCHAR2, dstPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, prop_flags IN INTEGER, store_name IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-7 CREATEREFERENCEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
リンク先のファイル・システム・エントリ。 |
|
作成する新しいリンク要素のパス。 |
|
|
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
参照を作成するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、指定したコンテンツIDによって指定されるファイルを削除します。
構文
DBMS_DBFS_CONTENT_SPI.DELETECONTENT ( store_name IN VARCHAR2, contentID IN RAW, filter IN VARCHAR2, soft_delete IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-8 DELETECONTENTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
削除するファイルの一意の識別子。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。 |
|
ファイルを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、ディレクトリを削除します。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_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-9 DELETEDIRECTORYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ディレクトリへのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。 |
|
0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルを再帰的に削除します。 |
|
ディレクトリを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、指定したファイルを削除します。
構文
DBMS_DBFS_CONTENT_SPI.DELETEFILE ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, soft_delete IN BOOLEAN, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-10 DELETEFILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ファイルへのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。 |
|
ファイルを削除するコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、既存のパス項目(ファイルやディレクトリなど)を戻します。これには、データとメタデータ(プロパティ)の両方が含まれます。
クライアントは(prop_flags
を使用して)特定のプロパティが戻されるように要求できます。ファイル・パス名は、prop_flags
でprop_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_DBFS_CONTENT_PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER, forUpdate IN INTEGER, deref IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T); DBMS_DBFS_CONTENT_SPI.GETPATH ( store_name IN VARCHAR2, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, amount IN OUT NUMBER, offset IN NUMBER, buffer OUT NOCOPY RAW, prop_flags IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T); DBMS_DBFS_CONTENT_SPI.GETPATH ( store_name IN VARCHAR2, 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, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-12 GETPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
入力時に読み取られるバイト数。出力時に読み取られるバイト数。 |
|
読取りを開始するバイト・オフセット。 |
|
書込み先のバッファ。 |
|
書込み先のバッファ。 |
|
どのプロパティが設定されるか、戻されるかまたはその両方かを決定します。デフォルトは |
|
パス項目に対する排他的書込みアクセス権限を示すためにロックを取得する必要があることを指定します。 |
|
0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照(シンボリック・リンク)であることが条件です。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
基礎となるGUIDが元のストアにある場合、このファンクションはストア修飾されたパス名を戻します。
このプロシージャは、操作が更新のためであることを示しており、実行された場合(「DBMS_DBFS_CONTENTの定数: ストア機能」
のFEATURE_NOWAITを参照)、プロバイダは行のロックを待機せず例外(ORA-00054
)を戻すことができます。
構文
DBMS_DBFS_CONTENT_SPI.GETPATHNOWAIT ( store_name IN VARCHAR2, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, content OUT NOCOPY BLOB, item_type OUT INTEGER, prop_flags IN INTEGER, deref IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-14 GETPATHNOWAITプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
どのプロパティが戻されるかを決定します。デフォルトは |
|
0(ゼロ)以外に設定すると、指定したパス項目を実際のデータに解決しようとします。ただし、実際のデータが参照(シンボリック・リンク)であることが条件です。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このファンクションは、ディレクトリ・パス名の内容をリストします。
サブプログラムの実行者には、サブディレクトリを再帰的に検索、ソフト削除された項目を表示、指定したタイムスタンプの「時点」でフラッシュバックを使用、リスト述語に基づいてストア内で項目をフィルタリングするオプションがあります。
構文
DBMS_DBFS_CONTENT_SPI.LIST ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, recurse IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T) RETURN DBMS_DBFS_CONTENT_LIST_ITEMS_T PIPELINED;
パラメータ
表49-17 LISTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
リポジトリの名前 |
|
ディレクトリへのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルの内容を再帰的にリストします。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
使用上の注意
このファンクションはリスト項目のみを戻します。クライアントは、GETPATHプロシージャのいずれかを明示的に使用して、項目と関連付けられているプロパティまたはコンテンツにアクセスする必要があります。
このプロシージャは、ユーザー・レベルのロックを指定した有効なパス名(ストア機能サポートの対象)に適用し、オプションとしてユーザー・データをロックと関連付けます。
構文
DBMS_DBFS_CONTENT_SPI.LOCKPATH ( store_name IN VARCHAR2, path IN VARCHAR2, lock_type IN INTEGER, lock_data IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-18 LOCKPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ロックされる項目のパス名。 |
|
いずれかの利用可能なロック・タイプ(「DBMS_DBFS_CONTENTの定数: ロックタイプ」を参照)。 |
|
ロックと関連付けられるオプションのユーザー・データ |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
使用上の注意
ロックおよびロック解除操作を整合性のある方法で実行することは、ストアおよびそのプロバイダの責任です(ユーザー定義のロック・チェックをサポートすることが前提)。
ロックされた項目のステータスは、様々なオプションのプロパティを使用して利用できます(「DBMS_DBFS_CONTENTの定数: オプションのプロパティ」
のOPT_LOCK*を参照)。
このプロシージャは、パスおよびオプションのフィルタ条件に一致する、すべてのソフト削除されたエントリをパージします。
構文
DBMS_DBFS_CONTENT_SPI.PURGEALL ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-19 PURGEALLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ファイル項目へのパス名。 |
|
存在する場合、指定した条件に基づいて適用するフィルタ。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、指定したパス項目の任意のソフト削除したバージョンをパージします。
構文
DBMS_DBFS_CONTENT_SPI.PURGEPATH ( path IN VARCHAR2, filter IN VARCHAR2, store_name IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-20 PURGEPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ファイル項目へのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、新しいパス項目を作成します。
構文
DBMS_DBFS_CONTENT_SPI.PUTPATH ( store_name IN VARCHAR2, 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, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T); DBMS_DBFS_CONTENT_SPI.PUTPATH ( store_name IN VARCHAR2, 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, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T); DBMS_DBFS_CONTENT_SPI.PUTPATH ( store_name IN VARCHAR2, 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, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-21 PUTPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
置かれる項目のパス名。 |
|
|
|
ファイルに移入するデータを保持する |
|
指定したパス項目のタイプ(「DBMS_DBFS_CONTENTの定数: パス名タイプ」を参照)。 |
|
読み取られるバイト数。 |
|
書き込まれたバイト数。 |
|
読取りを開始するバイト・オフセット。 |
|
書込み先のバッファ。 |
|
書込み先のバッファ。 |
|
どのプロパティが設定されるかを決定します。デフォルトは |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
使用上の注意
すべてのパス名はメタデータ(プロパティ)の読取りと変更を許可します。コール完了時に、クライアントはprop_flags
を使用して、特定のプロパティにアクセスできます(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)。
コール完了時に、クライアントはprop_flags
にあるprop_data
ビットマスクを使用して、データ・アクセスを継続するために使用できる新しいBLOB
ロケータを要求できます(「DBMS_DBFS_CONTENTの定数: プロパティ・アクセス・フラグ」を参照)。
ファイルは、論理オフセット、バッファ量および適切なサイズのバッファを明示的に指定することにより、BLOB
ロケータを使用せずに書き込むことができます。
このプロシージャは、パスの名前変更または移動を行います。この操作は、同じストア内であれば、複数のディレクトリ階層やマウント・ポイント間で実行できます。
注意: 名前の変更および移動操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
構文
DBMS_DBFS_CONTENT_SPI.RENAMEPATH ( store_name IN VARCHAR2, oldPath IN VARCHAR2, newPath IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-22 RENAMEPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。一意であることが必要です。 |
|
名前変更前のパス名。 |
|
名前変更後のパス名。 |
|
|
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、パスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。
構文
DBMS_DBFS_CONTENT_SPI.RESTOREALL ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-23 RESTOREALLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、指定したパスおよびオプションのフィルタ条件に一致するすべてのソフト削除されたパス項目をリストアします。
構文
DBMS_DBFS_CONTENT_SPI.RESTOREPATH ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-24 RESTOREPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このファンクションは、指定したパスおよびフィルタ条件に適合するパス項目を検索します。
構文
DBMS_DBFS_CONTENT_SPI.SEARCH ( store_name IN VARCHAR2, path IN VARCHAR2, filter IN VARCHAR2, recurse IN INTEGER, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T) RETURN DBMS_DBFS_CONTENT_LIST_ITEMS_T PIPELINED;
パラメータ
表49-25 LISTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
存在する場合、適用するフィルタ。 |
|
0の場合、再帰的に実行しません。それ以外の場合は、指定したディレクトリの下にあるディレクトリおよびファイルの内容を再帰的に検索します。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、コンテンツIDによって表されるパス項目にパス名を割り当てます。
コンテンツIDベースのアクセスおよびレイジー・パス名バインドをサポートするストアおよびそのプロバイダは、既存のcontentID
を新しい「パス」と関連付けるSETPATHプロシージャ
もサポートします。
注意: 名前の変更および移動操作の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。 |
構文
DBMS_DBFS_CONTENT_SPI.SETPATH ( store_name IN VARCHAR2, contentID IN RAW, path IN VARCHAR2, properties IN OUT NOCOPY DBMS_DBFS_CONTENT_PROPERTIES_T, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-26 SETPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
関連付けるファイルの一意の識別子。 |
|
パス項目へのパス名。 |
|
|
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |
このプロシージャは、ファイル・システム領域使用統計情報を問い合せます。プロバイダは、ストアに対してこのサブプログラムをサポートする必要があり、特にストアが複数の表、索引、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);
パラメータ
表49-27 SPACEUSAGEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
ストアを保持する自然表領域のブロック・サイズ。異なるブロック・サイズの複数の表領域を使用する場合、任意の有効なブロック・サイズが受け入れられます。 |
|
ストアを構成するすべてのセグメントに対して計算されたストアの合計サイズ(バイト単位)。 |
|
ストアを構成するすべてのセグメントに対して計算されたストアの空き領域または未使用領域のサイズ(バイト単位)。 |
|
ストアで現在使用可能なファイル数。 |
|
ストアで現在使用可能なディレクトリ数。 |
|
ストアで現在使用可能なリンク数。 |
|
ストアで現在使用可能な参照数。 |
このプロシージャは、LOCKPATHプロシージャで以前にロックされたパス項目をロック解除します。
構文
DBMS_DBFS_CONTENT_SPI.UNLOCKPATH ( store_name IN VARCHAR2, path IN VARCHAR2, ctx IN DBMS_DBFS_CONTENT_CONTEXT_T);
パラメータ
表49-28 UNLOCKPATHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ストアの名前。 |
|
パス項目へのパス名。 |
|
パス項目にアクセスするコンテキスト(「DBMS_DBFS_CONTENT_CONTEXT_Tオブジェクト・タイプ」を参照)。 |