カテゴリ:

システム関数 (システム情報)

SYSTEM$STREAM_GET_TABLE_TIMESTAMP

指定されたストリームの現在のオフセットまたはそれ以前の最新のテーブルバージョンのタイムスタンプを返します。ストリームが照会(または消費)されると、返されるレコードには、このテーブルバージョンの後、現在の時刻より前にコミットされたすべてのトランザクションが含まれます。

注釈

この関数は、主にストリームを「ブートストラップ」する手段として作成されました(つまり、テーブルが作成された期間(テーブルバージョン t0 )と指定されたストリームが作成された期間の間に挿入されたレコードのセットを返します)。この関数が導入されてから、 CHANGES 句を含む CREATE STREAM および SELECT ステートメントは、 AT | BEFORE 句を使用したTime Travelをサポートするようになりました。これらのオプションにより、履歴テーブルレコードをクエリする際に柔軟性が向上します。

構文

SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream_name>')

引数

ストリーム名

クエリするストリームの名前です。

  • データベースとスキーマ(名前が完全修飾されている場合)を含む、名前全体を一重引用符で囲む必要があります。つまり、 '<データベース>.<スキーマ>.<ストリーム名>'

  • ストリーム名で大文字と小文字が区別されるか、特殊文字やスペースが含まれる場合、大文字と小文字の処理には二重引用符が必要です。二重引用符は、一重引用符で囲む必要があります。例: '"<ストリーム名>"'

create table MYTABLE1 (id int);

create table MYTABLE2(id int);

create or replace stream MYSTREAM on table MYTABLE1;

insert into MYTABLE1 values (1);

-- consume the stream
begin;
insert into MYTABLE2 select id from MYSTREAM;
commit;

-- return the current offset for the stream
select system$stream_get_table_timestamp('MYSTREAM');