CURRENT TEMPORAL SYSTEM_TIME 特殊レジスター
CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターは、システム期間テンポラル表への参照のためのデフォルトの SYSTEM_TIME 期間指定で使用される TIMESTAMP(12) 値を指定します。
システム期間テンポラル表が参照され、CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターで有効な値が、NULL 以外の値である CTSTによって表される場合、以下の期間指定が暗黙的に行われます。
FOR SYSTEM_TIME AS OF CTST
ユーザー定義の関数またはプロシージャー内の特殊レジスターの初期値は、 呼び出し側アプリケーションから継承されます。 その他のコンテキストでは、特殊レジスターの初期値は NULL 値です。
SET CURRENT TEMPORAL SYSTEM_TIME ステートメントを実行することにより、この特殊レジスターの値を変更できます。
CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターの設定は、以下のコンパイル済み SQL オブジェクトに影響を及ぼします (これらが SYSTIMESENSITIVE バインド・オプションを YES に設定してバインドされている場合)。
- SQL プロシージャー
- コンパイル済み関数
- コンパイル済みトリガー
- コンパウンド SQL (コンパイル済み) ステートメント
- 外部 UDF
以下の例では、表 IN_TRAY がシステム期間テンポラル表であると想定します。
例 1: CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターで指定された日付の時点での IN_TRAY 内のメッセージの状態に基づいて、ユーザー ID と件名をリストします。
SELECT SOURCE, SUBJECT
FROM IN_TRAY
CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターが以前は値 CURRENT TIMESTAMP-7 DAYS に設定されていて、現在は NULL 値に設定されているとすると、次のステートメントは同じ結果を戻します。SELECT SOURCE, SUBJECT
FROM IN_TRAY
FOR SYSTEM_TIME AS OF CURRENT TEMPORAL SYSTEM_TIME
例 2: CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターで指定された値の前に送信された、IN_TRAY 内のメッセージのユーザー ID と件名行をリストします。
SELECT SOURCE, SUBJECT
FROM IN_TRAY
WHERE RECEIVED < CURRENT TEMPORAL SYSTEM_TIME
CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターが以前は '2011-01-01-00.00.00' に設定されていて、現在は NULL 値に設定されているとすると、次のステートメントは同じ結果を戻します。
SELECT SOURCE, SUBJECT
FROM IN_TRAY
FOR SYSTEM_TIME AS OF '2011-01-01-00.00.00'
WHERE DATE(RECEIVED) < DATE('2011-01-01-00.00.00')