DBMS_CSX_ADMINパッケージは、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズするインタフェースを提供します。
この章では、次の項目について説明します。
このパッケージをDBAで使用すると、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズできます。トランスポータブル表領域のジョブを実行するには、このパッケージを使用する必要はありません。
デフォルトでは、すべてのバイナリXML表に、デフォルトのトークン表の設定が使用されます。これは移動中にターゲット・データベースにレプリケートされます。トークン表の設定を大量に転送するコストを回避するため、特定の表領域にトークン表の設定を新しく登録することができます。このパッケージでは、トークン表の設定を登録および参照するためのルーチンを提供します。
DBMS_CSX_ADMINパッケージでは、表35-1に示す定数が使用されます。
表35-1 DBMS_CSX_ADMINの定数
| 名前 | 型 | 値 | 説明 |
|---|---|---|---|
|
|
|
|
デフォルトのトークン表。 |
|
|
|
|
表(表領域ではなく)に関連付けられているトークン表の設定。 |
|
|
|
|
表領域に関連付けられているトークン表の設定。 |
|
|
|
|
特定の表/表領域に関連付けられたトークン表がすでに存在します。 |
|
|
|
|
トークン表の新しい設定には索引を作成しません。 |
|
|
|
|
トークン表に索引を作成します。 |
|
|
|
|
デフォルトのトークン・マッピングをトークン表に事前に移入します。 |
|
|
|
|
デフォルトのトークン・マッピングをトークン表に事前に移入しません。 |
例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データの後続のロードではすべて、トークン表の新しい設定が使用されます。
表35-2 DBMS_CSX_ADMINパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
COPYDEFAULTTOKENTABLESETプロシージャ |
特定の表領域に対応するトークン表の設定を新規に作成し、そのトークン表にデフォルトのトークン表のトークン・マッピングを移入します。 |
|
GETTOKENTABLEINFOプロシージャおよびファンクション |
指定した表のトークン・マッピングが設定されたトークン表のGUIDを戻します。 |
|
GETTOKENTABLEINFOBYTABLESPACEプロシージャ |
指定した表領域のGUIDおよびトークン表の名前を戻します。 |
|
|
デフォルトのnamespace-IDトークン表を戻します。 |
|
|
デフォルトのpath-IDトークン表を戻します。 |
|
|
デフォルトのqname-IDトークン表を戻します。 |
|
|
トークン表の設定を新規に登録し、(必要に応じて)トークン表(対応する索引付き)を作成します。 |
このプロシージャは、特定の表領域に対応するトークン表の設定を新規に作成し、そのトークン表にデフォルトのトークン表のトークン・マッピングを移入します。
構文
DBMS_CSX_ADMIN.COPYDEFAULTTOKENTABLESET ( tsno IN NUMBER, qnametable OUT VARCHAR2, nmspctable OUT VARCHAR2, pttable OUT VARCHAR2);
パラメータ
表35-3 COPYDEFAULTTOKENTABLESETプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
トークン表の新しい設定が対応付けられる表領域の番号。 |
|
|
新しい設定でのqname-IDテーブルの名前。 |
|
|
新しい設定でのnamespace-IDテーブルの名前。 |
|
|
新しい設定でのpath-idテーブルの名前。 |
表の名前および所有者を指定すると、プロシージャの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;
パラメータ
表35-4 GETTOKENTABLEINFOプロシージャおよびファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
表の所有者。 |
|
|
表の名前。 |
|
|
指定した表で使用されるトークン表の設定のGUID。 |
|
|
新しい設定でのqname-IDテーブルの名前。 |
|
|
新しい設定でのnamespace-IDテーブルの名前。 |
|
|
デフォルトのトークン表の設定の場合は |
|
|
表オブジェクト番号。 |
このプロシージャでは、表領域番号を指定すると、この表領域の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);
パラメータ
表35-5 GETTOKENTABLEINFOBYTABLESPACEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
表領域の名前。 |
|
|
表領域番号。 |
|
|
指定した表領域(存在する場合)に対応するトークン表の設定のGUID。 |
|
|
qname-ID表の名前。 |
|
|
namespace-ID表の名前。 |
|
|
トークン表がデフォルトの場合は |
|
|
表領域に独自のトークン表の設定が含まれている場合は |
このプロシージャは、デフォルトのnamespace-IDトークン表を戻します。
構文
DBMS_CSX_ADMIN.NAMESPACEIDTABLE RETURN VARCHAR2;
このプロシージャは、デフォルトのpath-IDトークン表を戻します。このプロシージャは、XML索引を持つXML表への問合せに対してEXPLAIN PLANを実行する前に、デフォルトのpath-IDトークン表への権限をユーザーに付与するために使用されます。
構文
DBMS_CSX_ADMIN.PATHIDTABLE RETURN VARCHAR2;
このプロシージャは、デフォルトのqname-IDトークン表を戻します。
構文
DBMS_CSX_ADMIN.QNAMEIDTABLE RETURN VARCHAR2;
このプロシージャは、トークン表の設定を新規に登録し、(必要に応じて)トークン表(対応する索引付き)を作成します。
構文
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);
パラメータ
表35-6 REGISTERTOKENTABLESETプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
登録するトークン表の設定を使用する表または表領域の表領域番号または表番号。 |
|
|
トークン表の設定のGUID。ユーザーが |
|
|
表レベルの場合は |
|
|
有効な値は、次のとおりです。
|
|
|
|