Insérer des entités dans une table avec une colonne ST_Geometry

Utilisez l'instruction SQL INSERT et les fonctions ST_Geometry pour insérer des enregistrements dans une table avec une colonne ST_Geometry.

Les données à insérer dans une colonne ST_Geometry peuvent être exprimées dans l'un des formats de géométrie suivants :

Ces formats requièrent l'utilisation de fonctions de conversion en entrée et en sortie pour insérer des données spatiales dans une base de données et en extraire. Les fonctions sont fournies pour convertir des données de chacun de ces formats externes en types de données stockés dans une base de données Oracle PostgreSQL ou SQLite. Pour PostgreSQL, les fonctions sont également fournies pour convertir les formats de fichier de formes Esri.

Dans l'exemple suivant, quelques enregistrements sont insérés dans la table de base de données (sensitive_areas et hazardous_sites) dans une base de données Oracle, PostgreSQL et SQLite. Les fonctions ST_Geometry permet de convertir la représentation textuelle connue d'un polygone en un type ST_Polygon avant de l'insérer dans la colonne ZONE de la table sensitive_areas dans Oracle. Les fonctions ST_Polygon permet de convertir la représentation textuelle connue d'un polygone en un type ST_Polygon avant de l'insérer dans la colonne ZONE de la table sensitive_areas dans PostgreSQL et SQLite. De même, la fonction ST_Geometry convertit la représentation textuelle connue d'un point en un type ST_Point avant de l'insérer dans la colonne LOCATION de la table hazardous_sites dans Oracle, et la fonction ST_Point permet de convertir la représentation textuelle connue d'un point en un type ST_Point avant de l'insérer dans la colonne LOCATION de la table hazardous_sites dans PostgreSQL et SQLite. Vous pouvez également entrer des données dans un format binaire connu à l'aide des fonctions ST_PolyFromWKB() et ST_PointFromWKB().

Etapes :
  1. Ouvrez une session sur un éditeur SQL, en vous connectant à la base de données qui contient les tables dans lesquelles vous souhaitez insérer les données et en tant qu'utilisateur autorisé à exécuter cette opération.
  2. Utilisez l'instruction SQL INSERT pour ajouter un enregistrement aux tables hazardous_sites et sensitive_areas.
    • Oracle
      INSERT INTO SENSITIVE_AREAS (area_id, name, area_size, type, zone) VALUES (
       1,
       'Summerhill Elementary School',
       67920.64,
       'school',
       sde.st_geometry('polygon ((52 28,58 28,58 23,52 23,52 28))', 4326)
      );
      
      INSERT INTO HAZARDOUS_SITES (row_id, site_id, name, location) VALUES (
       1,
       102,
       'W. H. Kleenare Chemical Repository',
       sde.st_geometry('point (52 24)', 4326)
      );
      
    • PostgreSQL
      INSERT INTO sensitive_areas (area_id, name, area_size, type, zone) VALUES (
       1,
       'Summerhill Elementary School',
       67920.64,
       'school',
       ST_Polygon('polygon ((52 28, 58 28, 58 23, 52 23, 52 28))', 4326)
      );
      
      INSERT INTO hazardous_sites (row_id, site_id, name, location) VALUES (
       1,
       102,
       'W. H. Kleenare Chemical Repository',
       ST_Point('point (52 24)', 4326
      );
      
    • SQLite
      INSERT INTO sensitive_areas (name, area_size, type, zone) VALUES (
       'Summerhill Elementary School',
       67920.64,
       'school',
       ST_Polygon('polygon ((52 28, 58 28, 58 23, 52 23, 52 28))', 4326)
      );
      
      INSERT INTO hazardous_sites (site_id, name, location) VALUES (
       102,
       'W. H. Kleenare Chemical Repository',
       ST_Point('point (52 24)', 4326
      );
      

Thèmes connexes

5/10/2014