104 DBMS_IMMUTABLE_TABLE
不変表は、不正な変更からデータを保護するread-only表です。 また、人為的エラーによって発生する可能性のある偶発的なデータ変更も防止します。 DBMS_IMMUTABLE_TABLE
パッケージを使用すると、不変表内の期限切れの行を削除し、時間隔パーティション化を追加できます。
この章のトピックは、次のとおりです:
104.1 DBMS_IMMUTABLE_TABLEの概要
不変表は、不正な変更からデータを保護するread-only
表です。 また、不変表は人為的エラーによって発生する可能性のある偶発的なデータ変更も防止します。 不変表および不変表内の行に対して保存期間を指定する必要があります。 不変表に行が含まれていない場合、または表に指定された保存期間を経過している場合は、不変表を削除できます。 不変表から行を削除できるのは、表内の行に指定された保存期間を経過した後のみです。 保持期間の延長および時間隔パーティション化の追加を除き、このパッケージで不変表の定義を変更することはできません。
104.2 DBMS_IMMUTABLE_TABLEのセキュリティ・モデル
DBMS_IMMUTABLE_TABLE
パッケージは、SYS
によって所有され、データベース・インストールの一環としてインストールされます。 このパッケージ内のルーチンは、実行者権限を使用して実行されるため、現行のユーザーの権限を使用して実行されます。
104.3 DBMS_IMMUTABLE_TABLEサブプログラムの要約
この表は、DBMS_IMMUTABLE_TABLE
サブプログラムをアルファベット順に示し、簡単に説明しています。
表104-1 DBMS_IMMUTABLE_TABLEパッケージ・サブプログラム
サブプログラム | 説明 |
---|---|
ADD_INTERVAL_PARTITIONINGプロシージャ | このプロシージャは、時間隔パーティション化を既存のパーティション化されていないV1またはV2不変表に追加します。 |
DELETE_EXPIRED_ROWSプロシージャ | このプロシージャは、期限切れの行を削除します。 |
104.3.1 ADD_INTERVAL_PARTITIONINGプロシージャ
このプロシージャは、時間隔パーティション化を既存のパーティション化されていないV1またはV2不変表に追加します。
構文
DBMS_IMMUTABLE_TABLE.ADD_INTERVAL_PARTITIONING(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
interval_number IN NUMBER,
interval_frequency IN VARCHAR2,
first_high_timestamp IN TIMESTAMP);
パラメータ
表104-2 ADD_INTERVAL_PARTITIONINGパラメータ
パラメータ | 説明 |
---|---|
|
スキーマの名前。 |
table_name |
不変表の名前。 |
interval_number |
データベースが不変表のパーティションを作成する間隔を設定します。 |
interval_frequency |
|
first_high_timestamp |
不変表の最初のパーティションの上限を決定するタイムスタンプ。 |
使用上のノート
- コンポジット・パーティション化(つまり、サブパーティション化)は、前述の時間隔パーティション化ではサポートされていません。
104.3.2 DELETE_EXPIRED_ROWSプロシージャ
このプロシージャは、期限切れの行の一部または全部を不変表から削除します。 このプロシージャは、期限切れの行を削除する前および期限切れの行を削除した後でコミットします。
構文
DBMS_IMMUTABLE_TABLE.DELETE_EXPIRED_ROWS( schema_name IN VARCHAR2, table_name IN VARCHAR2, before_timestamp IN TIMESTAMP WITH TIME ZONE DEFAULT NULL, number_of_rows_deleted OUT NUMBER);
パラメータ
表104-3 DELETE_EXPIRED_ROWSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
schema_name |
スキーマの名前。 |
table_name |
不変表の名前。 |
before_timestamp |
パラメータが デフォルト値は |
number_of_rows_deleted |
削除する行数。 |