191 DBMS_XDB_VERSION

Oracle XML DBバージョニング・インタフェースは、DBMS_XBD_VERSIONパッケージに含まれています。DBMS_XDB_VERSIONのファンクションとプロシージャは、バージョン履歴内のVCRの作成とバージョンの管理に役立ちます。

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

191.1 DBMS_XDB_VERSIONのセキュリティ・モデル

DBMS_XDB_VERSIONパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。

191.2 DBMS_XDB_VERSIONサブプログラムの要約

この表は、DBMS_XDB_VERSIONサブプログラムを示し、簡単に説明しています。

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

メソッド 説明

CHECKINファンクション

チェックアウトされたVCRをチェックインし、新規作成されたバージョンのリソースIDを戻します。

CHECKOUTプロシージャ

VCRを更新または削除する前にチェックアウトします。

GETCONTENTSBLOBBYRESIDファンクション

内容をBLOBとして取得します。

GETCONTENTSCLOBBYRESIDファンクション

内容をCLOBとして取得します。

GETCONTENTSXMLBYRESIDファンクション

内容をXMLTypeとして取得します。

GETPREDECESSORSファンクション

先行リソースのリストをパス名を指定することによって取得します。

GETPREDSBYRESIDファンクション

先行リソースのリストをリソースIDを指定することによって取得します。

GETRESOURCEBYRESIDファンクション

リソース・オブジェクトIDを指定して、リソースをXMLTypeとして取得します。

GETSUCCESSORSファンクション

後続リソースのリストをパス名を指定することによって取得します。

GETSUCCSBYRESIDファンクション

後続リソースのリストをリソースIDを指定することによって取得します。

MAKEVERSIONEDファンクション

パス名を指定した標準リソースをバージョン管理されたリソースに変換します。

UNCHECKOUTファンクション

チェックアウトされたリソースをチェックインし、リソースがチェックアウトされる前にバージョンのリソースIDを戻します。

191.2.1 CHECKINファンクション

このファンクションは、チェックアウトされたVCRをチェックインし、新規作成されたバージョンのリソースIDを戻します。

構文

DBMS_XDB_VERSION.CHECKIN(
   pathname VARCHAR2) 
 RETURN DBMS_XDB.resid_type;

パラメータ

表191-2 CHECKINファンクションのパラメータ

パラメータ 説明

pathname

チェックアウトされたリソースのパス名。

使用上のノート

これは、自動コミットのSQL操作ではありません。CHECKINファンクションには、CHECKOUTプロシージャ操作で渡したパス名と同じパス名を取る必要はありません。ただし、操作が正しく行われるには、CHECKINファンクションCHECKOUTプロシージャのパス名が同じリソースのパス名であることが必要です。リソースの名前が変更されている場合、変更前の名前はすでに無効になっているか、現在は別のリソースにバインドされているため、CHECKINファンクションでは新規の名前を使用する必要があります。パス名が存在しない場合は、例外が発生します。パス名が変更されている場合、リソースのCHECKINファンクションでは新規のパス名を使用する必要があります。

191.2.2 CHECKOUTプロシージャ

このプロシージャは、VCRを更新または削除する前にチェックアウトします。

構文

DBMS_XDB_VERSION.Checkout(
   pathname    VARCHAR2);

パラメータ

表191-3 CHECKOUTプロシージャのパラメータ

パラメータ 説明

pathname

チェックアウトするVCRのパス名。

使用上のノート

これは、自動コミットのSQL操作ではありません。同じ作業領域の2名のユーザーが、CHECKOUTプロシージャを使用して同時に同じVCRをチェックアウトすることはできません。同時にチェックアウトすると、いずれかのユーザーはロールバックする必要があります。このため、リソースの更新前にCHECKOUTプロシージャ操作をコミットし、トランザクションがロールバックされた場合の更新内容の消失を回避することをお薦めします。指定したリソースがVCRでない場合、VCRがすでにチェックアウトされている場合、またはリソースが存在しない場合は、例外が発生します。

191.2.3 GETCONTENTSBLOBBYRESIDファンクション

このファンクションは、内容をBLOBとして取得します。

構文

DBMS_XDB_VERSION.GETCONTENTSBLOBYRESID(
   resid      DBMS_XDB.resid_type)
 RETURN BLOB;

パラメータ

表191-4 GETCONTENTSBLOBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

191.2.4 GETCONTENTSCLOBBYRESIDファンクション

このファンクションは、内容をCLOBとして取得します。

構文

DBMS_XDB_VERSION.GETCONTENTSCLOBYRESID(
   resid     DBMS_XDB.resid_type)
 RETURN CLOB;

パラメータ

表191-5 GETCONTENTSCLOBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

191.2.5 GETCONTENTSXMLBYRESIDファンクション

このファンクションは、内容をXMLTypeとして取得します。

構文

DBMS_XDB_VERSION.GETCONTENTSXMLBYRESID(
   resid      DBMS_XDB.resid_type)
 RETURN XMLType;

パラメータ

表191-6 GETCONTENTSXMLBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

戻り値

内容が有効なXMLでない場合、NULLを戻します。

191.2.6 GETPREDECESSORSファンクション

このファンクションは、パス名を指定することによって先行リソースのリストを取得します。

構文

DBMS_XDB_VERSION.GETPREDECESSORS(
   pathname       VARCHAR2) 
 RETURN resid_list_type;

パラメータ

表191-7 GETPREDECESSORSファンクションのパラメータ

パラメータ 説明

pathname

リソースのパス名。

戻り値

pathnameが無効の場合は、例外が発生します。

191.2.7 GETPREDSBYRESIDファンクション

このファンクションは、リソースIDを指定することによって先行リソースのリストを取得します。

構文

DBMS_XDB_VERSION.GETPREDSBYRESID(
   resid      resid_type) 
 RETURN resid_list_type;

パラメータ

表191-8 GETPREDSBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

使用上のノート

先行リソースの取得は、pathname別よりRESID別の方が効率的です。

例外

RESIDが無効の場合は、例外が発生します。

191.2.8 GETRESOURCEBYRESIDファンクション

このファンクションは、リソース・オブジェクトIDを指定して、リソースをXMLTypeとして取得します。システムではバージョン用のパス名を作成しないため、このファンクションは、リソースIDを使用してリソースを取得するときに役立ちます。

構文

DBMS_XDB_VERSION.GETRESOURCEBYRESID(
   resid      resid_type) 
 RETURN XMLType;

パラメータ

表191-9 GETRESOURCEBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

191.2.9 GETSUCCESSORSファンクション

バージョン・リソースまたはVCRを指定して、後続リソースのリストをパス名別に取得します。

構文

DBMS_XDB_VERSION.GETSUCCESSORS( 
   pathname VARCHAR2) 
 RETURN resid_list_type;

パラメータ

表191-10 GETSUCCESSORSファンクションのパラメータ

パラメータ 説明

pathname

リソースのパス名。

使用上のノート

後続リソースの取得は、pathname別よりRESID別の方が効率的です。

例外

pathnameが無効の場合は、例外が発生します。

191.2.10 GETSUCCSBYRESIDファンクション

このファンクションは、バージョン・リソースまたはVCRを指定して、後続リソースのリストをリソースID別に取得します。

構文

DBMS_XDB_VERSION.GETSUCCSBYRESID(
   resid    resid_type) 
  RETURN resid_list_type;

パラメータ

表191-11 GETSUCCSBYRESIDファンクションのパラメータ

パラメータ 説明

resid

リソースID。

使用上のノート

後続リソースの取得は、pathname別よりRESID別の方が効率的です。

例外

pathnameが無効の場合は、例外が発生します。

191.2.11 MAKEVERSIONEDファンクション

このファンクションは、指定されたパス名の標準リソースをバージョン管理されたリソースに変換します。これによって、この新規リソースはバージョン管理の対象になります。他のすべてのパス名は、引続き元のリソースを参照します。

構文

DBMS_XDB_VERSION.MAKEVERSIONED(
   pathname   VARCHAR2) 
 RETURN DBMS_XDB.resid_type;

パラメータ

表191-12 MAKEVERSIONEDファンクションのパラメータ

パラメータ 説明

pathname

バージョン管理の対象にするリソースのパス名。

戻り値

このファンクションは、VCRの最初のバージョン(ルート)のリソースIDを戻します。

使用上のノート

複数のパス名が同じリソースにバインドされている場合は、リソースのコピーが作成され、指定したパス名が、新たに作成されたコピーにバインドされます。

これは、自動コミットのSQL操作ではありません。リソースが存在しない場合は、例外が発生します。

  • このコールはVCRに対して有効で、例外や警告は発生しません。

  • このコールは、フォルダ、バージョン履歴、バージョン・リソースおよびACLに対しては無効です。

  • スキーマに基づいたリソースはサポートされていません。

191.2.12 UNCHECKOUTファンクション

このファンクションは、チェックアウトされたリソースをチェックインし、リソースがチェックアウトされる前にバージョンのリソースIDを戻します。

構文

DBMS_XDB_VERSION.UNCHECKOUT(
   pathname    VARCHAR2) 
 RETURN DBMS_XDB.resid_type;

パラメータ

表191-13 UNCHECKOUTファンクションのパラメータ

パラメータ 説明

pathname

チェックアウトされたリソースのパス名。

使用上のノート

これは、自動コミットのSQL操作ではありません。UNCHECKOUTファンクションでは、CHECKOUTプロシージャによって操作に渡したパス名と同じパス名を使用する必要はありません。ただし、操作が正しく行われるには、UNCHECKOUTファンクションCHECKOUTプロシージャのパス名が同じリソースのパス名であることが必要です。リソースの名前が変更されている場合、変更前の名前はすでに無効になっているか、現在は別のリソースにバインドされているため、UNCHECKOUTファンクションでは新規の名前を使用する必要があります。パス名が変更されている場合、リソースのUNCHECKOUTファンクションでは新規のパス名を使用する必要があります。

例外

パス名が存在しない場合は、例外が発生します。