97 DBMS_IOT
DBMS_IOT
パッケージは、索引構成表に対する連鎖行への参照をANALYZE
コマンドを使用して格納できる表を作成します。また、DBMS_IOT
によって、enable_constraint
操作時に、索引構成表の中で制約に違反する行への参照を格納できる例外表も作成できます。
DBMS_IOT
は、データベース・インストール時にロードされません。DBMS_IOT
をインストールするには、ADMIN
ディレクトリにあるdbmsiotc.sql
を実行します。
この章のトピックは、次のとおりです:
-
ノート:
Oracle Databaseリリース8.1でIOTの論理ROWIDが導入されたため、このパッケージに含まれるプロシージャを使用する必要はなくなりましたが、これは下位互換性のためにのみ残されています。ただし、Oracle Databaseリリース8.0を実行するサーバーには必要です。
97.1 DBMS_IOTサブプログラムの要約
この表では、DBMS_IOT
のサブプログラムをリストし、簡単に説明します。
表97-1 DBMS_IOTパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
索引構成表に対する連鎖行への参照を |
|
索引構成表の中で制約に違反する行を格納できる例外表を作成します。 |
97.1.1 BUILD_CHAIN_ROWS_TABLEプロシージャ
このプロシージャは、索引構成表に対する連鎖行への参照をANALYZE
コマンドを使用して格納できる表を作成します。
構文
DBMS_IOT.BUILD_CHAIN_ROWS_TABLE ( owner IN VARCHAR2, iot_name IN VARCHAR2, chainrow_table_name IN VARCHAR2 default 'IOT_CHAINED_ROWS');
パラメータ
表97-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)
97.1.2 BUILD_EXCEPTIONS_TABLEプロシージャ
このプロシージャは、例外表を作成します。
次の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');
パラメータ
表97-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)