DBMS_CSX_ADMIN
パッケージは、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズするインタフェースを提供します。
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
このパッケージをDBAで使用すると、バイナリXMLデータを含む表領域を移動する場合に設定をカスタマイズできます。トランスポータブル表領域のジョブを実行するには、このパッケージを使用する必要はありません。
デフォルトでは、すべてのバイナリXML表に、デフォルトのトークン表の設定が使用されますが、これは移動中にターゲット・データベースにレプリケートされます。トークン表の設定を大量に転送するコストを回避するため、DBAでは、特定の表領域にトークン表の設定を新しく登録することも選択できます。このパッケージでは、トークン表の設定を登録および参照するためのルーチンが提供されています。
DBMS_CSX_ADMIN
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、SYS
、XDB
またはDBA
に付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
DBMS_CSX_ADMIN
パッケージでは、表40-1に示す定数が使用されます。
表40-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データの後続のロードではすべて、トークン表の新しい設定が使用されます。
表40-2 DBMS_CSX_ADMINパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
COPYDEFAULTTOKENTABLESETプロシージャ |
特定の表領域に対応するトークン表の設定を新規に作成し、そのトークン表にデフォルトのトークン表のトークン・マッピングを移入します。 |
GETTOKENTABLEINFOプロシージャおよびファンクション |
指定した表のトークン・マッピングが設定されたトークン表のGUIDを戻します。 |
GETTOKENTABLEINFOBYTABLESPACEプロシージャ |
指定した表領域のGUIDおよびトークン表の名前を戻します。 |
|
デフォルトのnamespace-IDトークン表を戻します。 |
|
デフォルトのpath-IDトークン表を戻します。 |
|
デフォルトのqname-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;
パラメータ
表40-4 GETTOKENTABLEINFOプロシージャおよびファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
表の所有者。 |
|
表の名前。 |
|
指定した表で使用されるトークン表の設定のGUID。 |
|
新しい設定でのqname-IDテーブルの名前。 |
|
新しい設定でのnamespace-IDテーブルの名前。 |
|
デフォルトのトークン表の設定の場合は |
|
表オブジェクト番号。 |
このプロシージャでは、表領域番号を指定すると、この表領域のGUIDおよびトークン表の名前が戻されます。
このプロシージャは、デフォルトのpath-IDトークン表を戻します。このプロシージャは、XML索引を持つXML表への問合せに対してEXPLAIN
PLAN
を実行する前に、デフォルトのpath-IDトークン表への権限をユーザーに付与するために使用されます。
このプロシージャは、トークン表の設定を新規に登録し、(必要に応じて)トークン表(対応する索引付き)を作成します。
構文
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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
登録するトークン表の設定を使用する表または表領域の表領域番号または表番号。 |
|
トークン表の設定のGUID。ユーザーが |
|
表レベルの場合は |
|
有効な値は、次のとおりです。
|
|
|