日本語PDF

89 DBMS_IMMUTABLE_TABLE

不変表は、不正な変更からデータを保護するread-only表です。また、人為的エラーによって発生する可能性のある偶発的なデータ変更も防止します。DBMS_IMMUTABLE_TABLEパッケージを使用すると、不変表内の期限切れの行を削除できます。

この章のトピックは、次のとおりです:

89.1 DBMS_IMMUTABLE_TABLEの概要

不変表は、不正な変更からデータを保護するread-only表です。また、不変表は人為的エラーによって発生する可能性のある偶発的なデータ変更も防止します。不変表および不変表内の行に対して保存期間を指定する必要があります。不変表に行が含まれていない場合、または表に指定された保存期間を経過している場合は、不変表を削除できます。不変表から行を削除できるのは、表内の行に指定された保存期間を経過した後のみです。保存期間の延長を除き、不変表の定義は変更できません。

89.2 DBMS_IMMUTABLE_TABLEのセキュリティ・モデル

DBMS_IMMUTABLE_TABLEパッケージは、SYSによって所有され、データベース・インストールの一環としてインストールされます。このパッケージ内のルーチンは、実行者権限を使用して実行されるため、現行のユーザーの権限を使用して実行されます。

89.3 DBMS_IMMUTABLE_TABLEサブプログラムの要約

この表は、DBMS_IMMUTABLE_TABLEサブプログラムをアルファベット順に示し、簡単に説明しています。

表89-1 DBMS_IMMUTABLE_TABLEパッケージのサブプログラム

サブプログラム 説明
DELETE_EXPIRED_ROWSプロシージャ このプロシージャは、期限切れの行を削除します。

89.3.1 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);

パラメータ

表89-2 DELETE_EXPIRED_ROWSプロシージャのパラメータ

パラメータ 説明
schema_name スキーマの名前。
table_name 不変表の名前。
before_timestamp

パラメータがNULLの場合、表内の期限切れの行はすべて削除されます。パラメータがNULLではなく、現在の時刻および行保存時間に基づいて計算されたタイムスタンプより古い場合、タイムスタンプがパラメータ値より小さい行は削除されます。パラメータが、現在の時刻および行保存時間に基づいて計算されたタイムスタンプより新しい場合は、計算されたタイムスタンプが使用され、期限切れの行はすべて削除されます。

デフォルト値はNULLです。

number_of_rows_deleted 削除する行数。