DBMS_IOTパッケージは、索引構成表に対する連鎖行への参照をANALYZEコマンドを使用して格納できる表を作成します。 また、DBMS_IOTによって、enable_constraint操作時に、索引構成表の中で制約に違反する行への参照を格納できる例外表も作成できます。
DBMS_IOTは、データベース・インストール時にロードされません。 DBMS_IOTをインストールするには、ADMINディレクトリにあるdbmsiotc.sqlを実行します。
この章では、次の項目について説明します。
|
注意: Oracle Databaseリリース8.1でIOTの論理ROWIDが導入されたため、このパッケージに含まれるプロシージャを使用する必要はなくなりましたが、下位互換性のためにのみ残されています。ただし、Oracle Databaseリリース8.0を実行するサーバーには必要です。 |
表64-1 DBMS_IOTパッケージのサブプログラム
| サブプログラム | 説明 |
|---|---|
|
|
索引構成表に対する連鎖行への参照を |
|
|
索引構成表の中で制約に違反する行を格納できる例外表を作成します。 |
このプロシージャは、索引構成表に対する連鎖行への参照をANALYZEコマンドを使用して格納できる表を作成します。
DBMS_IOT.BUILD_CHAIN_ROWS_TABLE ( owner IN VARCHAR2, iot_name IN VARCHAR2, chainrow_table_name IN VARCHAR2 default 'IOT_CHAINED_ROWS');
表64-2 BUILD_CHAIN_ROWS_TABLEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
索引構成表の所有者 |
|
|
索引構成表名 |
|
|
連鎖行表の目的名 |
各索引構成表について、その主キーに対応する連鎖行表を個々に作成する必要があります。
CREATE TABLE l(a char(16),b char(16), c char(16), d char(240),
PRIMARY KEY(a,b,c)) ORGANIZATION INDEX pctthreshold 10 overflow;
EXECUTE DBMS_IOT.BUILD_CHAIN_ROWS_TABLE('SYS','L','LC');
次の列を含んだ連鎖行表が作成されます。
Column Name Null? Type ------------------------------ -------- ---- OWNER_NAME VARCHAR2(30) TABLE_NAME VARCHAR2(30) CLUSTER_NAME VARCHAR2(30) PARTITION_NAME VARCHAR2(30) SUBPARTITION_NAME VARCHAR2(30) HEAD_ROWID ROWID TIMESTAMP DATE A CHAR(16) B CHAR(16) C CHAR(16)
このプロシージャは、次のSQL文の実行時に、索引構成表の中で制約に違反する行を格納できる例外表を作成します。
ALTER TABLE ...ENABLE CONSTRAINT ...EXCEPTIONS INTO
ALTER TABLE ...ADD CONSTRAINT ...EXCEPTIONS INTO
DBMS_IOT.BUILD_EXCEPTIONS_TABLE ( owner IN VARCHAR2, iot_name IN VARCHAR2, exceptions_table_name IN VARCHAR2 default 'IOT_EXCEPTIONS');
表64-3 BUILD_EXCEPTIONS_TABLEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
索引構成表の所有者 |
|
|
索引構成表名 |
|
|
例外表の目的名 |
各索引構成表について、その主キーに対応する例外表を個々に作成する必要があります。
EXECUTE DBMS_IOT.BUILD_EXCEPTIONS_TABLE('SYS','L','LE');
前述の索引構成表に対する例外表の列は、次のようになります。
Column Name Null? Type ------------------------------ -------- ---- ROW_ID VARCHAR2(30) OWNER VARCHAR2(30) TABLE_NAME VARCHAR2(30) CONSTRAINT VARCHAR2(30) A CHAR(16) B CHAR(16) C CHAR(16)