次のAS OF問合わせでは、問合わせで指定された時点でオープンで有効であったすべてのテーブルの行を、それらの行が現在オープンかクローズかに関係なく取得します。
SELECT * FROM employee_systime FOR SYSTEM_TIME AS OF TIMESTAMP'2005-01-01 00:00:01.000000-08:00'; eid ename deptno sys_start sys_end ---- ------ ------ -------------------------------- -------------------------------- 1002 Ash 333 2003-07-01 12:11:00.000000-08:00 9999-12-31 23:59:59.999999+00:00 1001 Sania 111 2002-01-01 00:00:00.000000-08:00 9999-12-31 23:59:59.999999+00:00 1003 SRK 111 2004-02-10 00:00:00.000000-08:00 2006-03-01 00:00:00.000000-08:00 1004 Fred 222 2002-07-01 12:00:00.350000-08:00 2005-05-01 12:00:00.350000-08:00 1005 Alice 222 2004-12-01 00:12:23.120000-08:00 2005-05-01 12:00:00.450000-08:00
sys_end値と違って、これらの行のデータは2005年1月1日に存在したテーブルの状態を反映しています。その時点でFredとAliceはdeptno 222に属し、SRKがまだ採用されていました(SRK行はまだ削除されていませんでした)。
Fred、Alice、およびSRKの行のsys_end値は9999-12-31 23:59:59.999999+00:00より小さいため、この情報が2005年1月1日のもので、最新ではないことがわかります。AS OF日付以降にこれらの行への1つ以上の変更が発生し、これらの変更の最初の時間がsys_end値によって反映されます。9999-12-31 23:59:59.999999+00:00のsys_end日付の行はAS OF日付以降に変更または削除されていません。
テーブルの問合わせAS OF 2005-05-02は、FredとAliceの部門が変わった直後のテーブルの問合わせを反映します。
SELECT * FROM employee_systime FOR SYSTEM_TIME AS OF TIMESTAMP'2005-01-01 00:00:01.000000-08:00'; eid ename deptno sys_start sys_end ---- ------ ------ -------------------------------- -------------------------------- 1002 Ash 333 2003-07-01 12:11:00.000000-08:00 9999-12-31 23:59:59.999999+00:00 1001 Sania 111 2002-01-01 00:00:00.000000-08:00 9999-12-31 23:59:59.999999+00:00 1003 SRK 111 2004-02-10 00:00:00.000000-08:00 2006-03-01 00:00:00.000000-08:00 1004 Fred 555 2005-05-01 12:00:00.350000-08:00 9999-12-31 23:59:59.999999+00:00 1005 Alice 555 2005-05-01 12:00:00.450000-08:00 9999-12-31 23:59:59.999999+00:00
AS OF問合わせは所定の時点のテーブルの状態を反映するため、返されるクローズ行に発生した変更の性質を示すものではありません。system-timeテーブルの行への変更の性質を判断するには、変更の前後に存在した行を見る必要があります。残りのテンポラル問合わせ修飾子、BETWEEN ... AND、FROM TO、およびCONTAINED INを使用して、インスタンスではなく、有効時間の期間を指定できます。指定された期間中に行が変更された場合、古いバージョンと新しいバージョンの両方の行が返されるため、システム時間で行をクローズする原因になった変更の性質を判断することができます。