Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$STREAM_GET_TABLE_TIMESTAMP

Retorna o carimbo de data/hora em nanossegundos da última versão da tabela no deslocamento atual para o fluxo especificado, ou antes dele. Quando o fluxo é consultado (ou consumido), os registros retornados incluem todas as transações comprometidas após esta versão de tabela e antes da hora atual.

Nota

Esta função foi criada principalmente como um meio fazer “bootstrap” de um fluxo (ou seja, retornar o conjunto de registros inseridos entre o período em que a tabela foi criada (na versão de tabela t0) e o fluxo especificado foi criado). Desde que esta função foi introduzida, as instruções CREATE STREAM e SELECT que incluem a cláusula CHANGES agora oferecem suporte ao Time Travel usando a cláusula AT | BEFORE. Essas opções proporcionam maior flexibilidade para consultar os registros históricos da tabela.

Sintaxe

SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream_name>')
Copy

Argumentos

stream_name

O nome do fluxo a ser consultado.

  • Observe que o nome completo deve ser incluído entre aspas simples, incluindo o banco de dados e o esquema (se o nome for totalmente qualificado), ou seja, '<bd>.<esquema>.<nome_fluxo>'.

  • Se o nome do fluxo diferenciar letras maiúsculas e minúsculas ou incluir quaisquer caracteres ou espaços especiais, as aspas duplas são necessárias para processar o caso/caracteres. As aspas duplas devem ser incluídas dentro das aspas simples, ou seja, '"<nome_fluxo>"'.

Notas de uso

  • Essa função retorna um erro quando a entrada é um fluxo em uma exibição.

    Para criar um fluxo no ou antes do offset atual para um fluxo existente, recomendamos fornecer o nome do fluxo existente como entrada para a cláusula AT | BEFORE para manter a simplicidade e a máxima compatibilidade com os fluxos existentes:

    CREATE STREAM ... AT ( STREAM => '<stream-name>' )
    
    Copy

Exemplos

Consultar o carimbo de data/hora para o offset atual para um fluxo:

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