TSTOPACK: Como Converter uma Coluna de Marca Temporal MSSQL ou Sybase em um Decimal Compactado

Como:

Esta função se aplica apenas aos adaptadores Microsoft SQL Server e Sybase.

O Servidor Microsoft SQL e o Sybase possuem um tipo de dados chamado TIMESTAMP. Em vez de conter uma marca temporal, colunas com este tipo de dados contêm um número que é aumentado para cada registro inserido ou atualizado na fonte de dados. Esta marca temporal vem de uma área comum, portanto, nenhuma tabela no banco de dados possuirá o mesmo valor de coluna da marca temporal. O valor é armazenado no formato Binário(8) ou Varbinário(8) na tabela, mas é exibido como uma coluna alfanumérica de largura dupla (A16). Você pode utilizar a função TSTOPACK para converter a marca temporal em decimal compactado.


Topo da página

x
Sintaxe: Como Converter uma Coluna de Marca Temporal MSSQL ou Sybase em Decimal Compactado
TSTOPACK(tscol, output);

onde:

tscol

A16

É a coluna de marca temporal a ser convertido.

saída

P21

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples (‘).



Exemplo: Como Converter uma Coluna de Marca Temporal Microsoft SQL Server em Decimal Compactado

O comando CREATE TABLE a seguir cria um nome de tabela SQL Server TSTEST que contém uma coluna de contador inteiro com o nome I e uma coluna de marca temporal com o nome TS:

SQL SQLMSS
  CREATE TABLE TSTEST (I INT, TS timestamp) ;
END

O Arquivo Master para a fonte de dados TSTEST se encontra a seguir. O campo TS representa a coluna TIMESTAMP:

FILENAME=TSTEST, SUFFIX=SQLMSS  , $
  SEGMENT=TSTEST, SEGTYPE=S0, $
    FIELDNAME=I, ALIAS=I, USAGE=I11, ACTUAL=I4,
      MISSING=ON, $
    FIELDNAME=TS, ALIAS=TS, USAGE=A16, ACTUAL=A16, FIELDTYPE=R, $

Observação: Quando você gera um sinônimo para uma tabela com uma coluna TIMESTAMP, a coluna TIMESTAMP é criada como apenas de leitura (FILETYPE=R).

TSTOPACK converte a coluna da marca temporal em decimal compactado:

DEFINE FILE TSTEST 
TSNUM/P21=TSTOPACK(TS,'P21');
END
TABLE FILE TEST64
PRINT I TS TSNUM
END

A saída é:


Information Builders