Catégories :

Fonctions système (Informations système)

SYSTEM$STREAM_HAS_DATA

Indique si un flux spécifié contient des enregistrements de capture de données modifiées (CDC).

Syntaxe

SYSTEM$STREAM_HAS_DATA('<stream_name>')

Arguments

nom_flux

Le nom du flux à interroger.

  • Notez que le nom complet doit être placé entre guillemets simples, y compris la base de données et le schéma (si le nom est complètement qualifié), c’est-à-dire '<bd>.<schéma>.<nom_flux>'.

  • Si le nom du flux est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse/les caractères. Les guillemets doubles doivent être placés entre guillemets simples, c’est-à-dire '"<nom_flux>"'.

Notes sur l’utilisation

  • Cette fonction effectue un diff des métadonnées de version de table (entre le décalage de flux et l’heure de transaction actuelle) pour déterminer si le flux contient des enregistrements CDC. Si l’activité DML de la table au cours de cette période était constituée du même ensemble de lignes insérées, éventuellement mises à jour et supprimées et renvoyant à l’état de la table d’origine, il est alors possible que cette fonction renvoie une valeur TRUE alors que le flux ne contient aucun enregistrement CDC.

Exemples

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                                  |
+----------------------------------------+