Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_AsTableFormat

Dernière mise à jour :Sep 02, 2026

Renvoie la définition des types de colonnes d'une trajectoire sous forme de texte, à utiliser avec ST_AsTable.

Syntaxe

text ST_AsTableFormat(trajectory traj);

Paramètres

Paramètre Description
traj Objet trajectoire à inspecter.

Description

ST_AsTableFormat inspecte un objet trajectoire et renvoie une chaîne de texte décrivant sa structure de colonnes. Exemple :

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

Les attributs des trajectoires variant selon les jeux de données, il est impossible de coder en dur les types de colonnes pour ST_AsTable. Appelez d'abord ST_AsTableFormat pour inspecter la définition réelle des colonnes, puis transmettez-la à ST_AsTable afin de déployer la trajectoire dans une table relationnelle.

Exemples

Obtenir la définition des colonnes d'une trajectoire

L'exemple suivant récupère la définition des types de colonnes à partir d'un objet trajectoire.

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)

Le résultat associe chaque attribut de trajectoire à son type de colonne PostgreSQL correspondant :

Attribut Type dans la trajectoire Type de colonne 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

Déployer une trajectoire dans une table

L'exemple suivant illustre le flux de travail complet en deux étapes : appelez ST_AsTableFormat pour obtenir la définition des colonnes, puis transmettez-la à ST_AsTable afin de déployer la trajectoire dans une table interrogeable.

Étape 1. Obtenez la définition des colonnes.

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)

Étape 2. Utilisez la définition dans ST_AsTable pour déployer la trajectoire.

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

Étapes suivantes

  • ST_AsTable — convertit une trajectoire en une table relationnelle en utilisant la définition des colonnes renvoyée par ST_AsTableFormat