ヘッダーをスキップ
Oracle® XML DB開発者ガイド
11gリリース2 (11.2)
B70200-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

24 リソースのバージョン管理

この章では、Oracle XML DBリソースのバージョンを作成および管理する方法を説明します。

この章の内容は次のとおりです。

Oracle XML DBバージョニングの概要

バージョニングによって、Oracle XML DBのリポジトリのリソースの異なるバージョンを作成および管理できます。バージョン管理されたOracle XML DBリソースに対するすべての変更の記録または履歴が保持されます。バージョン管理されたリソースを更新すると、Oracle XML DBは、更新前のコンテンツを異なるリソース・バージョン(履歴記録のスナップショット)として格納します。

バージョニング機能には次のものが含まれます。

  • リソースのバージョン管理。

    Oracle XML DBリポジトリ・リソースのバージョン管理を有効または無効にするオプションがあります。

  • バージョン管理されたリソースの更新。

    Oracle XML DBは、バージョン管理されたリソースを更新するときに、リソースの新しいバージョンを作成します。この新しいバージョンは、バージョン管理されたリソースを削除しても、データベースから削除されません。

  • バージョン管理されたリソースへのアクセス。

    バージョン管理されたリソースには、他のリソースへのアクセスと同じ方法でアクセスできます。

  • リソース・バージョンへのアクセス。

    リソースの特定のバージョンにアクセスするには、そのバージョンのリソースIDを使用します。リソースIDは、リソース・バージョン履歴またはバージョン管理されたリソース自身から取得できます。「バージョニングおよびリソースID」を参照してください。

表24-1に、この章で使用する用語について示します。

表24-1 Oracle XML DBバージョニングの用語

用語 説明

バージョン対応リソース

バージョン管理可能なリソース。フォルダおよびACLを除くOracle XML DBリソースをすべて使用できます。

バージョン管理されたリソース

バージョン管理されるリソース。

バージョン・リソース

バージョン管理されたリソースの特定のバージョン。バージョン・リソースはリソースそのものです。システム生成であり、関連するパス名はありません。読取り専用です(更新または削除できません)。

checkOutcheckInunCheckOut

バージョン管理されたリソースを管理するための操作。バージョン管理されたリソースを変更する前にcheckOutを使用する必要があります。変更を永続的にする場合はcheckInを使用します。変更をキャンセルする場合はunCheckOutを使用します(これらの各操作の後にCOMMITを使用します)。



注意:

Oracle XML DBは、Oracle XML DBリソースのみのバージョン管理をサポートしています。Oracle Databaseのユーザー定義の表またはデータのバージョン管理はサポートされません

バージョンのリソースIDは、チェックインからチェックアウト間での保持が保証されません。最新のバージョンのリソースID以外はすべて保持されます。

Oracle XML DBでは、XML Schemaに基づかないXMLリソースのバージョニングをサポートします。また、基礎となる表に関連付けられているトリガーや制約がない場合にかぎり、XML Schemaに基づくリソース、およびXML Schemaに基づくメタデータを含むリソースのバージョン管理もサポートします。

表の階層が有効な場合は、表にトリガーが含まれます。これには、XML Schema登録の一部として作成される表が含まれ、デフォルトの動作によって階層が有効になります。

また、リソースの基礎となる表の1つを問い合せる場合は、その問合せで複数のバージョンのリソースからデータを戻すことができることにも注意してください。これは、行ごとに異なるリソース・バージョンのデータが基礎となる同じ表に格納されるためです。


バージョニングおよびリソースID

リソース・オブジェクトID(リソースID)は、Oracle XML DBリソースに対する一意で定数のシステム生成の識別子です。各リソースにはそれぞれリソースIDが含まれます。これには、パス名を含まないシステム生成のリソースであるバージョン・リソースが含まれます。リソースIDは、RESIDと呼ばれる場合があります。

リソースをバージョン管理し、異なるバージョンのリソースを管理するには、PL/SQLパッケージDBMS_XDB_VERSIONを使用します。DBMS_XDB_VERSION一部のルーチンは、バージョン管理されたリソースのパス名を引数として使用し、関連するバージョン・リソースのリソースIDを戻します。

たとえば、リソースをバージョン管理、つまりバージョン管理されたリソースにするには、ファンクションDBMS_XDB_VERSION.makeVersionedを使用します。これは、引数としてリソースのリポジトリ・パスを使用します。

バージョン管理された特定のリソースで様々なバージョニング操作を実行する場合は、同じパス名を使用する必要はありませんが、使用するパス名はすべて同じリソースを参照する必要があります。

バージョン管理されたリソースを表す引数としてパス名が渡されると、使用されるリソースの最新(現在)のバージョンになります。パス名は常に最新のバージョンを表します。現在のバージョン以外のバージョンを参照する唯一の方法は、そのリソースIDを使用することです。

指定されたバージョンのリソースIDは定数です。バージョンはそれ自体リソースで、リソースのリソースIDは変更されないことに注意してください。

バージョン管理されたリソースをチェックインするたびに、Oracle XML DBによって、リソースの新しいバージョンが作成されます。バージョン・リソースとは、リソースIDが付いたリソース(そのコンテンツおよびメタデータ)のスナップショットです。バージョン管理された特定のリソースのバージョン・リソースのコレクションによって、前のバージョンの履歴順序、バージョン・シリーズまたはリソースの履歴が構成されます。

リソースID Rを持つバージョン管理されたリソースをチェックインする場合、Oracle XML DBは新しいリソースID Pを作成します。これは最後にチェックアウトされる前と同様に、リソース(コンテンツおよびメタデータの両方)のスナップショットを参照します。スナップショットはチェックアウト前に作成されますが、関連するバージョン・リソース(およびそのリソースID P)はチェックイン時に作成されます。新しいリソースID Pおよびそれを参照するスナップショットはともに、リソースの現在ではなく前のバージョンを表すことになります。リソースID Rは引き続き現在のバージョンを参照します。

つまり、バージョン管理されたリソースをチェックインすると、バージョン管理されたリソースの前の状態を表すバージョン・リソースが作成されます。新しいリソースと同様、この新しいバージョン・リソースには新しいリソースID(P)が割り当てられます。

ファイルのバックアップ・コピーの作成を検討する方法で、バージョン・リソースの作成(チェックイン)を検討できます。バックアップ・ファイルに新しい名前を付けるのと同じように、リソースの前のバージョンのスナップショットに、新しいリソースIDが付けられます。作業ファイルが元の名前を保持するのと同じように、現在のリソースは元のリソースIDを保持します。

つまり、新しいバージョンを作成するためにリソースをチェックインすると、新しいバージョン・リソースは、実際は古い(前の)バージョンを表すバージョン・リソース(リソースID PおよびそのリソースIDで参照されるスナップショット)になります。リソースの最新のバージョン(R)が実際の現在のバージョンです。新しいバージョン・リソース = リソースのコンテンツおよびメタデータの古い(前のバージョン)となります。

リソースID Rは、バージョン管理された時点から削除されるまで、バージョン管理されたリソースの現在のバージョンを参照します。最新のバージョンのリソースには、常に元のリソースIDを使用してアクセスできます。

前のバージョンのリソースを参照する必要がある場合は、そのリソースIDを使用して参照する必要があります。パス名を使用することはできません。ファンクションDBMS_XDB_VERSION.getPredsByRESIDを使用すると、指定されたリソースの前のバージョンのリソースIDを取得できます。


注意:

リソースを削除すると、リソースIDやパス名に関係なく、そのリソースの後続の参照でエラー(通常はORA-31001: リソース・ハンドルまたはパス名が無効です)が発生します。バージョン管理されたリソースを削除すると、そのバージョンにはアクセスできません

バージョニングおよびACL

バージョン・リソースは不変です。これはリソースのコンテンツおよびメタデータのスナップショットで、リソースIDと、スナップショットおよびIDの両方は静的です。同様に、バージョン・リソースのACLは変更できません。

バージョン管理されたリソースをチェックアウトすると、そのACLを変更することはできません。ACLをチェックインすると、変更されたACLには引き続き現在(最新)のバージョンのリソースが関連付けられ、前のバージョン(新しく作成されたバージョン・リソース)は、変更前のACLに関連付けられます。つまり、前のバージョンは前のACLに関連付けられ、現在のバージョンは更新済のACLに関連付けられます。

注意する重要な点は次のとおりです。

  • リソースのバージョンごとに異なるACLを関連付けることができます。

  • 現在のバージョンに関連付けられたACLは、リソースのチェックアウト後に変更できます。

  • チェックインすると、新しく作成されたバージョン・リソース(リソースの前のバージョン)にチェックアウト前のACLが関連付けられます。

  • 指定されたバージョンに関連付けられたACLは同じままです。

リソースのバージョニングの例

この項では、次の操作の実行例について説明します。

  • リソースのバージョン管理(バージョン管理されたリソースの作成): 例24-2

  • リソースIDの参照によるリソースのコンテンツの取出し: 例24-3

  • バージョン管理されたリソース(すべてのユーザー)のチェックアウト: 例24-4

  • リソース・コンテンツの更新: 例24-5

  • リソースのチェックイン: 例24-6

  • 新しいバージョンおよび古いバージョンのリソースのコンテンツおよびメタデータの取出し: 例24-7例24-8例24-9

  • リソースのチェックアウトのキャンセル: 例24-10

例24-3では、Oracle XML DBリポジトリ・リソースをリポジトリ・パス/public/t1.txtで作成します。リソースにはコンテンツとしてテキストMary had a little lambが含まれます。この例では、SQL*PlusコマンドVARIABLEを使用して、この項の別の例で使用されているバインド変数targetPathcurrent_RESIDおよびprevious_RESIDを宣言します。

例24-1 リポジトリ・リソースの作成

VARIABLE targetPath      VARCHAR2(700)
VARIABLE current_RESID   VARCHAR2(32)
VARIABLE previous_RESID  VARCHAR2(32)

DECLARE
  res BOOLEAN;
BEGIN
  :targetPath  := '/public/t1.txt';
  IF (DBMS_XDB.existsResource(:targetPath))
     THEN DBMS_XDB.deleteResource(:targetPath);
  END IF;
  res := DBMS_XDB.createResource(:targetPath, 'Mary had a little lamb');
END;
/

新しいリソースはバージョン管理されません例24-2では、PL/SQL関数makeVersionedを使用して、バージョン管理の対象にします。この関数は、バージョン管理されたリソースの最初のバージョン・リソースのリソースIDを戻します。この関数では自動コミットは行われません。明示的にCOMMITを使用する必要があります。

例24-2 バージョン管理されたリソースの作成

DECLARE
  resid DBMS_XDB_VERSION.RESID_TYPE;
BEGIN
  resid := DBMS_XDB_VERSION.makeVersioned(:targetPath);
  :current_RESID := resid;
  COMMIT;
END;
/

例24-2では、新しいバージョン・リソースのリソースIDをバインド変数current_RESIDにコピーします。例24-3に、型コンストラクタXDBUritypeとPL/SQLファンクションcreateOIDPathを使用し、リソースIDを参照してリソース・コンテンツを取り出す方法を示します。

例24-3 リソースIDの参照によるリソース・コンテンツの取出し

SELECT XDBURIType(DBMS_XDB.createOIDPath(:current_RESID)).getClob() FROM DUAL;

XDBURITYPE(DBMS_XDB.CREATEOIDPATH(:CURRENT_RESID)).GETCLOB()
------------------------------------------------------------
Mary had a little lamb
 
1 row selected.

例24-4では、バージョン管理されたリソースをチェックアウトして(コミットし)、このリソースを変更できるようにします。チェックアウトされたリソースは変更できません。

例24-4 バージョン管理されたリソースのチェックアウト

BEGIN
  DBMS_XDB_VERSION.checkOut(:targetPath);
  COMMIT;
END;
/

例24-5では、チェックアウトしたリソースのコンテンツを更新します。(LOB)コンテンツを更新する前に、リソースをロックする必要があります。この例では、リソースの表示名(スカラー属性)のダミー更新を使用して、この操作を実行します。

例24-5 リソース・コンテンツの更新

DECLARE
  content        BLOB;
  newContentBlob BLOB;
  newContentClob CLOB;
  source_offset  INTEGER := 1;
  target_offset  INTEGER := 1;
  warning        INTEGER;
  lang_context   INTEGER := 0;
BEGIN
  -- Lock the resource using a dummy update.
  UPDATE RESOURCE_VIEW
    SET RES =
      updateXML(RES, '/Resource/DisplayName/text()',
                XMLCast(XMLQuery(
                          'declare namespace ns =
                           "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :)
                           $r/ns:Resource/ns:DisplayName/text()'
                          PASSING RES AS "r" RETURNING CONTENT)
                        AS VARCHAR2(128)))
    WHERE equals_path(res, :targetPath) = 1;
  -- Get the LOB locator.
  SELECT XMLCast(XMLQuery('declare namespace ns =
                           "http://xmlns.oracle.com/xdb/XDBResource.xsd"; (: :)
                           $r/ns:Resource/ns:XMLLob'
                          PASSING RES AS "r" RETURNING CONTENT)
                 AS BLOB)
    INTO content FROM RESOURCE_VIEW
    WHERE equals_path(RES, :targetPath) = 1;
  -- Update the LOB.
  newContentClob := 'Hickory dickory dock, the mouse ran up the clock';
  DBMS_LOB.createTemporary(newContentBlob, false, DBMS_LOB.CALL);
  DBMS_LOB.convertToBlob(newContentBlob, newContentClob,
                         DBMS_LOB.getLength(newContentClob),
                         source_offset, target_offset,
                         nls_charset_id('AL32UTF8'), lang_context, warning);
  DBMS_LOB.open(content, DBMS_LOB.lob_readwrite);
  DBMS_LOB.trim(content, 0);
  DBMS_LOB.append(content, newContentBlob);
  DBMS_LOB.close(content);
  DBMS_LOB.freeTemporary(newContentBlob);
  DBMS_LOB.freeTemporary(newContentClob);
  COMMIT;
END;
/

例24-5では、LOBロケータを使用してLOBコンテンツを取得します。これは要素/ns:Resource/ns:XMLLobです。これにより既存のコンテンツは空になり、パッケージDBMS_LOB内のPL/SQLプロシージャtrimおよびappendを使用して、新しいコンテンツが追加されます。コンテンツの変更がコミットされます。


関連項目:

LOBの更新の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

この時点でコンテンツは変更されていますが、この変更はバージョン・シリーズに記録されていません。例24-6では、リソースをチェックインし、チェックインをコミットします。

例24-6 バージョン管理されたリソースのチェックイン

DECLARE
  resid DBMS_XDB_VERSION.RESID_TYPE;
BEGIN
  resid := DBMS_XDB_VERSION.checkIn(:targetPath);
  :previous_RESID := DBMS_XDB_VERSION.getPredsByRESID(resid)(1);
  COMMIT;
END;
/

PL/SQL関数checkInは現在のバージョンのリソースIDを戻し、これはcurrent_RESIDと同じです。例24-6では、この値をPL/SQL関数getPredsByRESIDに渡します。この関数は、引数の直前のリソースの、リソースIDのリストを戻します。脚注 1  例24-6では、このリストの最初(かつ唯一)の要素をバインド変数previous_RESIDに割り当てます。

この時点で、current_RESIDの値は現在のバージョンのリソースIDで、previous_RESIDの値は前のバージョンのリソースIDです。

リソースのコンテンツまたはメタデータは、次の方法を使用して取り出すことができます。

  • XDBURITypeとPL/SQLファンクションDBMS_XDB.createOIDPath: コンテンツを取り出します。例24-3および例24-7を参照してください。

  • PL/SQLファンクションDBMS_XDB_VERSION.getContentsCLOBByRESID: コンテンツを取り出します。例24-8を参照してください。

  • PL/SQLファンクションDBMS_XDB_VERSION.getResourceByRESID: メタデータを取り出します。例24-9を参照してください。

XDBURITypecreateOIDPathを使用すると、プロトコルを使用してリソース・コンテンツにアクセスできます。たとえば、createOIDPathによって戻される値にHTML IMAGEタグのHREFを設定し、様々なバージョンのWebページ用グラフィック・イメージ・ファイルのリソースをOracle XML DBで提供できます。

例24-7から例24-9では、それぞれ異なる方法を使用して、バインド変数current_RESIDおよびprevious_RESIDで指定されるリソースの2つのバージョンをチェックイン後に取り出します。

例24-7 XDBURITYPEおよびCREATEOIDPATHを使用したリソース・バージョン・コンテンツの取出し

SELECT XDBURIType(DBMS_XDB.createOIDPath(:current_RESID)).getClob() FROM DUAL;
 
XDBURITYPE(DBMS_XDB.CREATEOIDPATH(:CURRENT_RESID)).GETCLOB()
------------------------------------------------------------
Mary had a little lamb
 
1 row selected.
 
SELECT XDBURIType(DBMS_XDB.createOIDPath(:previous_RESID)).getClob() FROM DUAL;
 
XDBURITYPE(DBMS_XDB.CREATEOIDPATH(:PREVIOUS_RESID)).GETCLOB()
-------------------------------------------------------------
Hickory dickory dock, the mouse ran up the clock
 
1 row selected.

例24-8 GETCONTENTSCLOBBYRESIDを使用したリソース・バージョン・コンテンツの取出し

SELECT DBMS_XDB_VERSION.getContentsCLOBByRESID(:current_RESID) FROM DUAL;

DBMS_XDB_VERSION.GETCONTENTSCLOBBYRESID(:CURRENT_RESID)
-------------------------------------------------------
Mary had a little lamb
 
1 row selected.
 
SELECT DBMS_XDB_VERSION.getContentsCLOBByRESID(:previous_RESID) FROM DUAL;
 
DBMS_XDB_VERSION.GETCONTENTSCLOBBYRESID(:PREVIOUS_RESID)
--------------------------------------------------------
Hickory dickory dock, the mouse ran up the clock
 
1 row selected.

例24-9 GETRESOURCEBYRESIDを使用したリソース・バージョン・メタデータの取出し

SELECT XMLSerialize(DOCUMENT DBMS_XDB_VERSION.getResourceByRESID(:current_RESID)
                    AS CLOB INDENT SIZE = 2)
  FROM DUAL;
<Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false"
          Invalid="false" VersionID="2" ActivityID="0" Container="false"
          CustomRslv="false" VersionHistory="false" StickyRef="true">
  <CreationDate>2009-05-06T12:33:34.012133</CreationDate>
  <ModificationDate>2009-05-06T12:33:34.280199</ModificationDate>
  <DisplayName>t1.txt</DisplayName>
  <Language>en-US</Language>
  <CharacterSet>UTF-8</CharacterSet>
  <ContentType>text/plain</ContentType>
  <RefCount>1</RefCount>
  <ACL>
    <acl description="Public:All privileges to PUBLIC"
         xmlns="http://xmlns.oracle.com/xdb/acl.xsd" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd 
                             http://xmlns.oracle.com/xdb/acl.xsd"
         shared="true">
      <ace>
        <grant>true</grant>
        <principal>PUBLIC</principal>
        <privilege>
          <all/>
        </privilege>
      </ace>
    </acl>
  </ACL>
  <Owner>HR</Owner>
  <Creator>HR</Creator>
  <LastModifier>HR</LastModifier>
  <SchemaElement>http://xmlns.oracle.com/xdb/XDBSchema.xsd#text</SchemaElement>
  <Contents>
    <text>Mary had a little lamb</text>
  </Contents>
  <VCRUID>69454F2EF12E3375E040578C8A1764B5</VCRUID>
  <Parents>69454F2EF12F3375E040578C8A1764B5</Parents>
</Resource>
 
1 row selected.
 
SELECT XMLSerialize(DOCUMENT DBMS_XDB_VERSION.getResourceByRESID(:previous_RESID)
                    AS CLOB INDENT SIZE = 2)
  FROM DUAL;
<Resource xmlns="http://xmlns.oracle.com/xdb/XDBResource.xsd" Hidden="false"
          Invalid="false" VersionID="1" Container="false" CustomRslv="false" 
          VersionHistory="false" StickyRef="true">
  <CreationDate>2009-05-06T12:33:34.012133</CreationDate>
  <ModificationDate>2009-05-06T12:33:34.012133</ModificationDate>
  <DisplayName>t1.txt</DisplayName>
  <Language>en-US</Language>
  <CharacterSet>UTF-8</CharacterSet>
  <ContentType>text/plain</ContentType>
  <RefCount>0</RefCount>
  <ACL>
    <acl description="Public:All privileges to PUBLIC"
         xmlns="http://xmlns.oracle.com/xdb/acl.xsd" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.oracle.com/xdb/acl.xsd
                             http://xmlns.oracle.com/xdb/acl.xsd"
         shared="true">
      <ace>
        <grant>true</grant>
        <principal>PUBLIC</principal>
        <privilege>
          <all/>
        </privilege>
      </ace>
    </acl>
  </ACL>
  <Owner>HR</Owner>
  <Creator>HR</Creator>
  <LastModifier>HR</LastModifier>
  <SchemaElement>http://xmlns.oracle.com/xdb/XDBSchema.xsd#text</SchemaElement>
  <Contents>
    <text>Hickory dickory dock, the mouse ran up the clock</text>
  </Contents>
  <VCRUID>69454F2EF12E3375E040578C8A1764B5</VCRUID>
</Resource>
 
1 row selected.

PL/SQLファンクションDBMS_XDB_VERSION.unCheckOutを使用すると、チェックアウトをキャンセルできます。例24-10に、これを示します。

例24-10 UNCHECKOUTを使用したチェックアウトのキャンセル

DECLARE
  resid DBMS_XDB_VERSION.RESID_TYPE;
BEGIN
  resid := DBMS_XDB_VERSION.unCheckOut(:targetPath);
END;
/

表24-2は、この章で説明するPL/SQLパッケージDBMS_XDB_VERSIONのサブプログラムをまとめたものです。

表24-2 パッケージDBMS_XDB_VERSIONのPL/SQLファンクションおよびプロシージャ

ファンクションまたはプロシージャ 説明

makeVersioned(pathname VARCHAR2) RETURN DBMS_XDB_VERSION.RESID_TYPE;

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

2つ以上のパス名が同じリソースを参照する場合、そのリソースはコピーされ、引数のパス名はコピーにバインドされます。新しいリソースは、バージョン管理されます。他のすべてのパス名は、引続き元のリソースを参照します。

引数はバージョン管理するリソースのパス名です。

バージョン管理されたリソースの最初のバージョン・リソースのリソースIDを戻します。

これは、自動コミットのSQL操作ではありません。フォルダ、バージョン・リソースまたはACLでmakeVersionedをコールする場合や、ターゲット・リソースが存在しない場合、エラーが発生します。注意: バージョン管理されたリソースでmakeVersionedをコールする場合、エラーまたは警告は発生しません。

checkOut(pathname VARCHAR2);

バージョン管理されたリソースをチェックアウトします。チェックアウトするまで、バージョン管理されたリソースは更新または削除できません。チェックアウトはすべてのユーザー対象: チェックアウトされたリソースは変更できません。

引数は、バージョン管理されたチェックアウト対象のリソースのパス名です。これは、自動コミットのSQL操作ではありません。バージョン管理された同じリソースを2人のユーザーが同時にチェックアウトする場合は、一方のユーザーがロールバックする必要があります。注意する点として、リソースをチェックアウトしてから更新するまでコミットしてください。ターゲット・リソースがバージョン管理されていない場合や存在しない場合、またはチェックアウト済の場合はエラーが発生します。

checkIn (pathname VARCHAR2) RETURN DBMS_XDB_VERSION.RESID_TYPE;

バージョン管理されたチェックアウト済のリソースをチェックインします。

pathname - チェックアウトしたリソースのパス名。

新しく作成されたバージョンのリソースIDを戻します。

これは、自動コミットのSQL操作ではありません。チェックアウトに使用したパス名と同じパス名を使用する必要はありません。しかし、チェックインのパス名とチェックアウトのパス名は同じリソースを参照する必要があります。そうでない場合は、予期しない結果になります。

リソースの名前が変更された場合は、チェックイン時に新しい名前を使用する必要があります。パス名で参照するリソースがないと、エラーが発生します。

unCheckOut(pathname VARCHAR2) RETURN DBMS_XDB.RESID_TYPE;

チェックアウトしたリソースをチェックインします。

引数はチェックアウトしたリソースのパス名です。

リソースがチェックアウトされる前にバージョンのリソースIDを戻します。これは、自動コミットのSQL操作ではありません。チェックアウトに使用したパス名と同じパス名を使用する必要はありません。しかし、unCheckOutのパス名とチェックアウトのパス名は同じリソースを参照する必要があります。そうでない場合は、予期しない結果になります。

リソースの名前が変更された場合は、unCheckOutに新しい名前を使用する必要があります。パス名で参照するリソースがないと、エラーが発生します。

getPredecessors(pathname VARCHAR2) RETURN RESID_LIST_TYPE;

getPredsByRESID(resid DBMS_XDB.RESID_TYPE) RETURN RESID_LIST_TYPE;

バージョン・リソースまたはバージョン管理されたリソースを参照するパス名を指定すると、先行のリソースが戻されます。

ファンクションgetPredsByRESIDを使用して先行のリソースをリソースIDで取り出すことは、ファンクションgetPredecessorsを使用してパス名で取り出す方法よりも効率的です。

戻される先行リソースのリストに含まれる要素(親)は1つのみです。Oracle XML DBでは、ブランチがサポートされていません。

getSuccessors(pathname VARCHAR2) RETURN RESID_LIST_TYPE;

getSuccsByRESID(resid DBMS_XDB.RESID_TYPE) RETURN RESID_LIST_TYPE;

指定されたバージョン・リソースまたはバージョン管理されたリソースで、後続のリソースを戻します。

ファンクションgetSuccsByRESIDを使用して後続のリソースをリソースIDで取り出すことは、ファンクションgetSuccessorsを使用してパス名で取り出す方法よりも効率的です。

戻される後続リソースに含まれる要素(親)は1つのみです。Oracle XML DBでは、ブランチがサポートされていません。

getResourceByRESID(resid DBMS_XDB.RESID_TYPE) RETURN XMLType;

指定されたリソースIDで、リソースをXMLTypeインスタンスとして戻します。




脚注の凡例

脚注1: Oracle XML DBでは、バージョン・リソースには常に単一の先行リソース(その直前の単一のバージョン)が含まれます。WebDAV標準では、複数の先行リソースの選択肢が用意されます。