Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$STREAM_HAS_DATA

Gibt an, ob ein angegebener Stream Datensätze vom Typ Change Data Capture (CDC) enthält.

Syntax

SYSTEM$STREAM_HAS_DATA('<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>"'.

Nutzungshinweise

  • Diese Funktion führt ein Diff der Tabellenversionmetadaten durch (zwischen dem Stream-Offset und der aktuellen Transaktionszeit), um festzustellen, ob der Stream CDC-Datensätze enthält. Wenn die DML-Aktivität für die Tabelle während dieses Zeitraums aus derselben Menge von Zeilen bestand, die eingefügt, optional aktualisiert und gelöscht wurden, um zum ursprünglichen Tabellenstatus zurückzukehren, ist es möglich, dass diese Funktion einen TRUE-Wert zurückgibt, obwohl der Stream keine CDC-Datensätze enthält.

Beispiele

create table MYTABLE1 (id int);

create table MYTABLE2(id int);

create stream MYSTREAM on table MYTABLE1;

insert into MYTABLE1 values (1);

-- returns true because the stream contains change tracking information
select system$stream_has_data('MYSTREAM');

+----------------------------------------+
| SYSTEM$STREAM_HAS_DATA('MYSTREAM')     |
|----------------------------------------|
| True                                   |
+----------------------------------------+

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

-- returns false because the stream was consumed
select system$stream_has_data('MYSTREAM');

+----------------------------------------+
| SYSTEM$STREAM_HAS_DATA('MYSTREAM')     |
|----------------------------------------|
| False                                  |
+----------------------------------------+