Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_AsTableFormat

Última atualização: Sep 02, 2026

Retorna a definição dos tipos de coluna de uma trajetória como texto, para uso com ST_AsTable.

Sintaxe

text ST_AsTableFormat(trajectory traj);

Parâmetros

Parâmetro

Descrição

traj

Objeto de trajetória a inspecionar.

Descrição

A função ST_AsTableFormat inspeciona um objeto de trajetória e retorna uma string de texto que descreve sua estrutura de colunas. Exemplo:

(t timestamp, x double precision, y double precision, sog real, cog integer, hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)

Como os atributos da trajetória variam conforme o conjunto de dados, não é possível definir os tipos de coluna da ST_AsTable de forma estática. Chame primeiro a ST_AsTableFormat para verificar a definição real das colunas e, em seguida, passe o resultado para a ST_AsTable expandir a trajetória em uma tabela relacional.

Exemplos

Obter a definição de colunas de uma trajetória

O exemplo a seguir recupera a definição dos tipos de coluna de um objeto de trajetória.

SELECT ST_AsTableFormat(
  '{"trajectory":{"version":1,"type":"STPOINT","leafcount":1,
    "start_time":"2010-01-01 11:30:00","end_time":"2010-01-01 11:30:00",
    "spatial":"SRID=4326;POINT(1 1)","timeline":["2010-01-01 11:30:00"],
    "attributes":{"leafcount":1,
      "i1":{"type":"integer","length":1,"nullable":true,"value":[1]},
      "i2":{"type":"integer","length":2,"nullable":true,"value":[1]},
      "i4":{"type":"integer","length":4,"nullable":true,"value":[1]},
      "i8":{"type":"integer","length":8,"nullable":true,"value":[1]},
      "f4":{"type":"float","length":4,"nullable":true,"value":[1]},
      "f8":{"type":"float","length":8,"nullable":true,"value":[1]},
      "string":{"type":"string","length":10,"nullable":true,"value":["fat"]},
      "timestamp":{"type":"timestamp","length":8,"nullable":true,"value":["2010-01-01 11:30:00"]},
      "bool":{"type":"bool","length":1,"nullable":true,"value":["true"]}}}}'::trajectory
);
-- Result:
-- (t timestamp, x double precision, y double precision, i1 integer, i2 smallint,
--  i4 integer, i8 bigint, f4 real, f8 double precision, string text,
--  timestamp timestamp, bool boolean)

A saída mapeia cada atributo da trajetória para seu tipo de coluna PostgreSQL correspondente:

Atributo

Tipo na trajetória

Tipo de coluna SQL

i1

integer, length 1

integer

i2

integer, length 2

smallint

i4

integer, length 4

integer

i8

integer, length 8

bigint

f4

float, length 4

real

f8

float, length 8

double precision

string

string

text

timestamp

timestamp

timestamp

bool

bool

boolean

Expandir uma trajetória em uma tabela

Este exemplo demonstra o fluxo de trabalho completo em duas etapas: chame a ST_AsTableFormat para obter a definição das colunas e, depois, utilize-a na ST_AsTable para expandir a trajetória em uma tabela consultável.

Etapa 1. Selecione a definição das colunas.

SELECT ST_AsTableFormat(traj) FROM table_name LIMIT 1;
-- Result:
-- (t timestamp, x double precision, y double precision, sog real, cog integer,
--  hdg integer, rot integer, status integer, is_satelite smallint, statictime integer)

Etapa 2. Utilize a definição na ST_AsTable para expandir a trajetória.

SELECT f.*
FROM table_name,
     ST_AsTable(traj) AS f(
       t timestamp, x double precision, y double precision,
       sog real, cog integer, hdg integer, rot integer,
       status integer, is_satelite smallint, statictime integer
     );

Próximos passos

  • ST_AsTable — converte uma trajetória em uma tabela relacional usando a definição de colunas retornada pela ST_AsTableFormat