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