ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

40 DBMS_CSX_ADMIN

DBMS_CSX_ADMINパッケージは、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズするインタフェースを提供します。

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


DBMS_CSX_ADMINの使用方法


概要

このパッケージをDBAで使用すると、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズできます。トランスポータブル表領域のジョブを実行するには、このパッケージを使用する必要はありません。

デフォルトでは、すべてのバイナリXML表に、デフォルトのトークン表の設定が使用されますが、これは移動中にターゲット・データベースにレプリケートされます。トークン表の設定を大量に転送するコストを回避するため、DBAでは、特定の表領域にトークン表の設定を新しく登録することも選択できます。このパッケージでは、トークン表の設定を登録および参照するためのルーチンが提供されています。


セキュリティ・モデル

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


定数

DBMS_CSX_ADMINパッケージでは、表40-1に示す定数が使用されます。

表40-1 DBMS_CSX_ADMINの定数

名前 タイプ 説明

DEFAULT_LEVEL

BINARY_INTEGER

0

デフォルトのトークン表。

TAB_LEVEL

BINARY_INTEGER

1

表(表領域ではなく)に関連付けられているトークン表の設定。

TBS_LEVEL

BINARY_INTEGER

2

表領域に関連付けられているトークン表の設定。

NO_CREATE

BINARY_INTEGER

0

特定の表/表領域に関連付けられたトークン表がすでに存在します。

NO_INDEXES

BINARY_INTEGER

1

トークン表の新しい設定には索引を作成しません。

WITH_INDEXES

BINARY_INTEGER

2

トークン表に索引を作成します。

DEFAULT_TOKS

BINARY_INTEGER

0

デフォルトのトークン・マッピングをトークン表に事前に移入します。

NO_DEFAULT_TOKS

BINARY_INTEGER

1

デフォルトのトークン・マッピングをトークン表に事前に移入しません。



例1: 表領域へのトークン表の設定の新規登録

表領域CSXTSのエクスポートの準備をするために、DBAは次のPL/SQLを使用して、表領域にトークン表の設定を新規に登録できます。

DECLARE
  tsno   number;
  stmt   varchar2(2000);
BEGIN
  stmt := 'SELECT ts# FROM ts$ WHERE (name = ''' || 'CSXTS' || ''')';
  EXECUTE IMMEDIATE stmt into tsno;
  DBMS_CSX_ADMIN.REGISTERTOKENTABLESET(
    tstabno     =>  tsno, 
    guid        =>  NULL,
    flags       =>  DBMS_CSX_ADMIN.TBS_LEVEL, 
    tocreate    =>  DBMS_CSX_ADMIN.WITH_INDEXES,
    defaulttoks =>  DBMS_CSX_ADMIN.DEFAULT_TOKS);
  COMMIT;
END;
/

この例では、新規トークン表が索引付けされ、デフォルトのトークン・マッピングが移入され、CSXTS表領域のすべての表に関連付けられます。その後のCSXTSのバイナリXMLデータのロードでは、常にこのトークン表の新しい設定が使用されます。他の表領域のバイナリXMLデータをロードしても、CSXTSによって使用され、CSXTS表領域のエクスポート時にエクスポートされる、トークン表のサイズは影響を受けないという利点があります。この設定は、表領域にまだバイナリXMLデータが含まれていない場合に適しています。

例2: 新しい設定へのデフォルトのトークン表のコピー

エクスポートする表領域にバイナリXMLデータがすでに存在する場合は、新しい設定にデフォルトのトークン表をコピーできます。

DECLARE
  tsno   number;
  stmt   varchar2(2000);
  qntab  varchar2(34);
  nmtab  varchar2(34);
  pttab  varchar2(34);
BEGIN
  stmt := 'select ts# from ts$ where (name = ''' || 'CSXTS' || ''')';
  EXECUTE IMMEDIATE stmt INTO tsno;
  DBMS_CSX_ADMIN.COPYDEFAULTTOKENTABLESET(
    tstabno => tsno, qntab, nmtab, pttatb);
  COMMIT;
END;
/

この設定は、すでにバイナリXMLデータが含まれていて、トークン表の設定に対応していない表領域のエクスポートを最適化する場合に適しています。デフォルトのトークン表の設定をクローニングした後、CSXTSのバイナリXMLデータの後続のロードではすべて、トークン表の新しい設定が使用されます。


DBMS_CSX_ADMINの要約

表40-2 DBMS_CSX_ADMINパッケージのサブプログラム

サブプログラム 説明

COPYDEFAULTTOKENTABLESETプロシージャ


特定の表領域に対応するトークン表の設定を新規に作成し、そのトークン表にデフォルトのトークン表のトークン・マッピングを移入します。

GETTOKENTABLEINFOプロシージャおよびファンクション


指定した表のトークン・マッピングが設定されたトークン表のGUIDを戻します。

GETTOKENTABLEINFOBYTABLESPACEプロシージャ


指定した表領域のGUIDおよびトークン表の名前を戻します。

NAMESPACEIDTABLEファンクション


デフォルトのnamespace-IDトークン表を戻します。

PATHIDTABLEファンクション


デフォルトのpath-IDトークン表を戻します。

QNAMEIDTABLEファンクション


デフォルトのqname-IDトークン表を戻します。

REGISTERTOKENTABLESETプロシージャ


トークン表の設定を新規に登録し、(必要に応じて)トークン表(対応する索引付き)を作成します。



COPYDEFAULTTOKENTABLESETプロシージャ

このプロシージャは、特定の表領域に対応するトークン表の設定を新規に作成し、そのトークン表にデフォルトのトークン表のトークン・マッピングを移入します。

構文

DBMS_CSX_ADMIN.COPYDEFAULTTOKENTABLESET  (
   tsno         IN    NUMBER,
   qnametable   OUT   VARCHAR2,
   nmspctable   OUT   VARCHAR2,
   pttable      OUT   VARCHAR2);

パラメータ

表40-3 COPYDEFAULTTOKENTABLESETプロシージャのパラメータ

パラメータ 説明

tsno

トークン表の新しい設定が対応付けられる表領域の番号。

qnametable

新しい設定でのqname-IDテーブルの名前。

nmspctable

新しい設定でのnamespace-IDテーブルの名前。

pttable

新しい設定でのpath-idテーブルの名前。



GETTOKENTABLEINFOプロシージャおよびファンクション

表の名前および所有者を指定すると、プロシージャの1番目のオーバーロードで、この表のトークン・マッピングが存在するトークン表設定のグローバルな一意の識別子(GUID)が戻されます。また、このプロシージャでは、トークン表の名前、およびトークン表の設定がデフォルトであるかどうかも戻されます。

表のオブジェクト番号を指定すると、プロシージャの2番目のオーバーロードで、表に使用されるトークン表の設定のGUID、およびこれがデフォルトのトークン表の設定かどうかが戻されます。

構文

DBMS_CSX_ADMIN.GETTOKENTABLEINFO  (
   ownername      IN   VARCHAR2,
   tablename      IN   VARCHAR2,
   guid           OUT  RAW,
   qnametable     OUT  VARCHAR2,
   nmspctable     OUT  VARCHAR2,
   level          OUT  NUMBER,
   tabno          OUT  NUMBER);
DBMS_CSX_ADMIN.GETTOKENTABLEINFO  (
   tabno          IN   NUMBER,
   guid           OUT  RAW);
 RETURN BOOLEAN;

パラメータ

表40-4 GETTOKENTABLEINFOプロシージャおよびファンクションのパラメータ

パラメータ 説明

ownername

表の所有者。

tablename

表の名前。

guid

指定した表で使用されるトークン表の設定のGUID。

qnametable

新しい設定でのqname-IDテーブルの名前。

nmspctable

新しい設定でのnamespace-IDテーブルの名前。

level

デフォルトのトークン表の設定の場合はDEFAULT_LEVEL、指定した表と同じ表領域のすべての表で、同じトークン表の設定が使用される場合はTBS_LEVEL、その他の場合はTAB_LEVEL

tabno

表オブジェクト番号。



GETTOKENTABLEINFOBYTABLESPACEプロシージャ

このプロシージャでは、表領域番号を指定すると、この表領域のGUIDおよびトークン表の名前が戻されます。

構文

DBMS_CSX_ADMIN.GETTOKENTABLEINFOBYTABLESPACE  (
   tsname          IN   VARCHAR2,
   tablespaceno    IN   NUMBER,
   guid            OUT  RAW,
   qnametable      OUT  VARCHAR2,
   nmspctable      OUT  VARCHAR2,
   isdefault       OUT  BOOLEAN,
   containTokTab   OUT  BOOLEAN);

パラメータ

表40-5 GETTOKENTABLEINFOBYTABLESPACEプロシージャのパラメータ

パラメータ 説明

tsname

表領域の名前。

tablespaceno

表領域番号。

guid

指定した表領域(存在する場合)に対応するトークン表の設定のGUID。

qnametable

qname-ID表の名前。

nmspctable

namespace-ID表の名前。

isdefault

トークン表がデフォルトの場合はTRUE

containTokTab

表領域に独自のトークン表の設定が含まれている場合はTRUE



NAMESPACEIDTABLEファンクション

このプロシージャは、デフォルトのnamespace-IDトークン表を戻します。

構文

DBMS_CSX_ADMIN.NAMESPACEIDTABLE 
  RETURN VARCHAR2;

PATHIDTABLEファンクション

このプロシージャは、デフォルトのpath-IDトークン表を戻します。このプロシージャは、XML索引を持つXML表への問合せに対してEXPLAIN PLANを実行する前に、デフォルトのpath-IDトークン表への権限をユーザーに付与するために使用されます。

構文

DBMS_CSX_ADMIN.PATHIDTABLE 
  RETURN VARCHAR2;

QNAMEIDTABLEファンクション

このプロシージャは、デフォルトのqname-IDトークン表を戻します。

構文

DBMS_CSX_ADMIN.QNAMEIDTABLE 
  RETURN VARCHAR2;

REGISTERTOKENTABLESETプロシージャ

このプロシージャは、トークン表の設定を新規に登録し、(必要に応じて)トークン表(対応する索引付き)を作成します。

構文

DBMS_CSX_ADMIN.REGISTERTOKENTABLESET  (
   tstabno      IN  NUMBER  DEFAULT NULL,
   guid         IN  RAW     DEFAULT NULL, 
   flags        IN  NUMBER  DEFAULT TBS_LEVEL,
   tocreate     IN  NUMBER  DEFAULT WITH_INDEXES,
   defaulttoks  IN  NUMBER  DEFAULT DEFAULT_TOKS);

パラメータ

表40-6 REGISTERTOKENTABLESETプロシージャのパラメータ

パラメータ 説明

tstabno

登録するトークン表の設定を使用する表または表領域の表領域番号または表番号。

guid

トークン表の設定のGUID。ユーザーがSYSの場合、NULLに設定すると、新しく識別子が作成されます。

flags

表レベルの場合はTAB_LEVEL、表領域レベルの場合はTBS_LEVEL

tocreate

有効な値は、次のとおりです。

  • トークン表を作成しない場合はNO_CREATE

  • トークン表を作成するが、索引は作成しない場合はNO_INDEXES

  • トークン表および対応する索引を作成する場合はWITH_INDEXES

defaulttoks

DEFAULT_TOKSの場合は、デフォルトのトークン・マッピングを挿入します。