Catégories :

Fonctions système (Informations système)

SYSTEM$STREAM_GET_TABLE_TIMESTAMP

Renvoie l’horodatage de la dernière version de la table au moment du ou avant le décalage actuel pour le flux spécifié. Lorsque le flux est interrogé (ou consommé), les enregistrements renvoyés comprennent toutes les transactions effectuées après cette version de la table et avant l’heure actuelle.

Note

Cette fonction a été créée principalement pour « amorcer » un flux (c’est-à-dire renvoyer l’ensemble des enregistrements insérés entre la période où la table a été créée (à la version de la table t0) et celle où le flux spécifié a été créé). Depuis l’introduction de cette fonction, les instructions CREATE STREAM et SELECT qui incluent la clause CHANGES prennent désormais en charge Time Travel en utilisant la clause AT | BEFORE. Ces options offrent une plus grande souplesse pour interroger les enregistrements des tables historiques.

Syntaxe

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

Exemples

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