49 DBMS_DBFS_CONTENT_SPI

DBMS_DBFS_CONTENT_SPIパッケージは、DBMS_DBFS_CONTENT ストア・プロバイダの実装される必要のある仕様です。アプリケーション設計者は、この仕様に準拠するPL/SQLパッケージを作成して、DBMS_DBFS_CONTENTを拡張し、カスタム・ストア・プロバイダを使用できます。

この章のトピックは、次のとおりです:

関連項目

49.1 ODBMS_DBFS_CONTENT_SPIの概要

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でメソッドを起動するため、これはランタイム・エラーの原因になる可能性があります。

関連項目

49.2 DBMS_DBFS_CONTENT_SPIのセキュリティ・モデル

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

49.3 DBMS_DBFS_CONTENT_SPIの操作上のノート

このトピックでは、DBMS_DBFS_CONTENT_SPI実装、パス名および他の操作の操作上のノートを示します。

実装

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

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

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

パス名

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

コンテンツIDベースのアクセスをサポートするストアおよびそのプロバイダ(表48-5の「FEATURE_CONTENT_ID」を参照)もパス名に基づかないアドレッシングの形式をサポートします。コンテンツ項目は、明示的なストア名およびNULLパス名によって識別され、パラメータとしてまたはOPT_CONTENT_ID (表48-8を参照)プロパティによって指定されるコンテンツ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.4 DBMS_DBFS_CONTENT_SPIサブプログラムの要約

この表に、DBMS_DBFS_CONTENT_SPIパッケージで使用するサブプログラムをリストし、説明します。

表49-2 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プロシージャで以前にロックされたパス項目をロック解除します。

49.4.1 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;

パラメータ

表49-3 CHECKACCESSプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

pathtype

オブジェクトpathのタイプを表します(表48-4を参照)。

operation

チェックする操作(表48-8を参照)。

principal

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

使用上のノート

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

49.4.2 CREATEDIRECTORYプロシージャ

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

構文

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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

properties

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

prop_flags

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

recurse

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

ctx

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

49.4.3 CREATEFILEプロシージャ

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

構文

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プロシージャのパラメータ

パラメータ 説明

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オブジェクト・タイプ」を参照)。

49.4.4 CREATELINKプロシージャ

このプロシージャは、すでに存在するファイル・システム要素(ファイルやディレクトリなど)への物理的なリンクを作成します。生成されるエントリは、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プロシージャのパラメータ

パラメータ 説明

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オブジェクト・タイプ」を参照)。

49.4.5 CREATEREFERENCEプロシージャ

このプロシージャは、ソース・ファイル・システム要素(ファイルやディレクトリなど)への新しい参照を作成します。生成される参照はソース要素を指しますが、ソース要素と直接メタデータを共有しません。これは、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プロシージャのパラメータ

パラメータ 説明

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オブジェクト・タイプ」を参照)。

49.4.6 DELETECONTENTプロシージャ

このプロシージャは、指定したコンテンツ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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

contentID

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

filter

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

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。

ctx

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

49.4.7 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_DBFS_CONTENT_CONTEXT_T);

パラメータ

表49-9 DELETEDIRECTORYプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

filter

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

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。

recurse

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

ctx

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

49.4.8 DELETEFILEプロシージャ

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

構文

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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

ファイルへのパス名。

filter

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

soft_delete

0の場合、ハード(永続的)削除を実行します。0以外の値の場合、ソフト削除を実行します(『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』の「削除操作に関する説明」を参照)。

ctx

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

49.4.9 GETFEATURESファンクション

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

構文

DBMS_DBFS_CONTENT_SPI.GETFEATURES (
   store_name          IN      VARCHAR2)
  RETURN  INTEGER;

パラメータ

表49-11 GETFEATURESファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

戻り値

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

49.4.10 GETPATHプロシージャ

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

クライアントは(prop_flagsを使用して)特定のプロパティが戻されるように要求できます。ファイル・パス名は、prop_flagsprop_dataビットマスクを使用してBLOBロケータを指定する(表48-9を参照)か、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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

properties

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

content

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

item_type

指定されたパス項目のタイプ(表48-4を参照)。

amount

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

offset

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

buffer

書込み先のバッファ。

buffers

書込み先のバッファ。

prop_flags

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

forUpdate

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

deref

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

ctx

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

49.4.11 GETPATHBYSTOREIDファンクション

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

構文

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

パラメータ

表49-13 GETPATHBYSTOREIDファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

guid

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

戻り値

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

使用上のノート

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

49.4.12 GETPATHNOWAITプロシージャ

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

詳細は、表48-5FEATURE_NOWAITを参照してください。

構文

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プロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

properties

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

content

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

item_type

指定されたパス項目のタイプ(表48-4を参照)。

prop_flags

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

deref

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

ctx

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

49.4.13 GETSTOREIDファンクション

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

構文

DBMS_DBFS_CONTENT_SPI.GETSTOREID (
   store_name          IN      VARCHAR2)
  RETURN  NUMBER;

パラメータ

表49-15 GETSTOREIDファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

戻り値

ストアのID。

使用上のノート

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

49.4.14 GETVERSIONファンクション

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

構文

DBMS_DBFS_CONTENT_SPI.GETVERSION (
   store_name          IN      VARCHAR2)
  RETURN  VARCHAR2;

パラメータ

表49-16 GETVERSIONファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

戻り値

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

49.4.15 ISPATHLOCKEDプロシージャ

このプロシージャは、指定したパスにユーザー・レベルのロックが適用されているかどうかをチェックします。

構文

DBMS_DBFS_CONTENT.ISPATHLOCKED (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   who            IN     VARCHAR2,
   lock_type      IN OUT INTEGER,
   ctx            IN     DBMS_DBFS_CONTENT_CONTEXT_T);  

パラメータ

表49-17 ISPATHLOCKEDプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

who

パスをロックしたトランザクション識別子。

lock_type

使用可能なロック・タイプのいずれか(表48-6を参照)。

ctx

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

49.4.16 LISTファンクション

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

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

構文

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-18 LISTファンクションのパラメータ

パラメータ 説明

store_name

リポジトリの名前。

path

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

filter

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

recurse

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

ctx

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

戻り値

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

使用上のノート

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

49.4.17 LOCKPATHプロシージャ

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

構文

DBMS_DBFS_CONTENT_SPI.LOCKPATH (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   who            IN     VARCHAR2,
   lock_type      IN     INTEGER,
   waitForRowLock IN     INTEGER,
   ctx            IN     DBMS_DBFS_CONTENT_CONTEXT_T);

パラメータ

表49-19 LOCKPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

who

パスをロックしたトランザクション識別子。

lock_type

使用可能なロック・タイプのいずれか(表48-6を参照)。

waitForRowLock

行がトランザクションによってロックされているかどうかを判別します。

ctx

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

使用上のノート

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

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

49.4.18 PURGEALLプロシージャ

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

構文

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

パラメータ

表49-20 PURGEALLプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

filter

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

ctx

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

49.4.19 PURGEPATHプロシージャ

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

構文

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

パラメータ

表49-21 PURGEPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

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

filter

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

ctx

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

49.4.20 PUTPATHプロシージャ

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

構文

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-22 PUTPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

置かれる項目のパス名。

properties

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

content

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

item_type

指定されたパス項目のタイプ(表48-4を参照)。

amount

読み取られるバイト数。

written

書き込まれたバイト数。

offset

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

buffer

書込み先のバッファ。

buffers

書込み先のバッファ。

prop_flags

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

ctx

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

使用上のノート

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

  • コール完了時に、クライアントはprop_flagsにあるprop_dataビットマスクを使用して、データ・アクセスを継続するために使用できる新しいBLOBロケータを要求できます(表48-9を参照)。

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

49.4.21 RENAMEPATHプロシージャ

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

ノート:

名前の変更および移動操作の詳細は、『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-23 RENAMEPATHプロシージャのパラメータ

パラメータ 説明

store_name

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

oldPath

名前変更前のパス名。

newPath

名前変更後のパス名。

properties

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

ctx

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

49.4.22 RESTOREALLプロシージャ

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

構文

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

パラメータ

表49-24 RESTOREALLプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

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

ctx

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

49.4.23 RESTOREPATHプロシージャ

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

構文

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

パラメータ

表49-25 RESTOREPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

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

ctx

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

49.4.24 SEARCHファンクション

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

構文

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-26 LISTファンクションのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

filter

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

recurse

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

ctx

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

戻り値

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

49.4.25 SETPATHプロシージャ

このプロシージャは、コンテンツ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-27 SETPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

contentID

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

path

パス項目へのパス名。

properties

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

ctx

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

49.4.26 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);

パラメータ

表49-28 SPACEUSAGEプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

blksize

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

tbytes

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

fbytes

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

nfile

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

ndir

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

nlink

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

nref

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

使用上のノート

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

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

49.4.27 UNLOCKPATHプロシージャ

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

構文

DBMS_DBFS_CONTENT_SPI.UNLOCKPATH (
   store_name     IN     VARCHAR2,
   path           IN     VARCHAR2,
   who            IN     VARCHAR2,
   waitForRowLock IN     INTEGER,
   ctx            IN     DBMS_DBFS_CONTENT_CONTEXT_T);

パラメータ

表49-29 UNLOCKPATHプロシージャのパラメータ

パラメータ 説明

store_name

ストアの名前。

path

パス項目へのパス名。

who

パスをロックしたトランザクション識別子。

waitForRowLock

行がトランザクションによってロックされているかどうかを判別します。

ctx

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