Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$STREAM_GET_TABLE_TIMESTAMP

Gibt den Zeitstempel der neuesten Tabellenversion am oder vor dem aktuellen Offset für den angegebenen Datenstream zurück. Wenn der Datenstream abgefragt (oder verbraucht) wird, enthalten die zurückgegebenen Datensätze alle Transaktionen, die nach dieser Tabellenversion und vor der aktuellen Uhrzeit bestätigt wurden.

Bemerkung

Diese Funktion wurde in erster Linie als Mittel zum „Bootstrapping“ eines Streams erstellt, d. h. zur Rückgabe der Menge von Datensätzen, die zwischen dem Zeitraum, in dem die Tabelle erstellt wurde (bei Tabellenversion t0) und dem angegebenen Stream eingefügt wurden. Durch Einführung dieser Funktion unterstützen CREATE STREAM- und SELECT-Anweisungen, die eine CHANGES-Klausel enthalten, nun Time Travel mit der AT | BEFORE-Klausel. Diese Optionen bieten eine größere Flexibilität bei der Abfrage historischer Tabellendatensätze.

Syntax

SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream_name>')

Argumente

Name_des_Streams

Der Name des abzufragenden Streams.

  • Beachten Sie, dass der gesamte Name in einfache Anführungszeichen eingeschlossen werden muss, einschließlich Datenbank und Schema (wenn der Name vollqualifiziert ist), d. h. '<Datenbank>.<Schema>.<Name_des_Streams>'.

  • Wenn der Streamname zwischen Groß- und Kleinschreibung unterscheidet bzw. Sonderzeichen oder Leerzeichen enthält, sind doppelte Anführungszeichen erforderlich, damit sich Groß-/Kleinschreibung und Zeichen korrekt verarbeiten lassen. Die doppelten Anführungszeichen müssen in einfache Anführungszeichen eingeschlossen werden, d. h. '"<Name_des_Streams>"'.

Beispiele

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