Insertion d'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 ou PostgreSQL. Pour PostgreSQL, les fonctions sont également fournies pour convertir les formats de fichier de formes ESRI. Reportez-vous à la rubrique "Présentation générale des fonctions SQL utilisées avec les types ST_Geometry" pour une liste complète des fonctions fournies.

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 DB2. La fonction ST_PolyFromText() (utilisez ST_Polygon dans PostgreSQL) convertit la représentation textuelle connue d'un polygone en type ST_Polygon avant de l'insérer dans la colonne ZONE de la table sensitive_areas. De même, la fonction ST_PointFromText() (utilisez ST_Point dans PostgreSQL) convertit la représentation textuelle connue d'un point en type ST_Point avant de l'insérer dans la colonne LOCATION de la table hazardous_sites. Vous pouvez également entrer des données dans un format binaire connu à l'aide des fonctions ST_PolyFromWKB() et ST_PointFromWKB().

RemarqueRemarque :

Lorsque vous utilisez des fonctions de type spatial dans DB2, les fonctions doivent être qualifiées avec db2gse.

Étapes :
  1. 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_PolyFromText('polygon ((52 28,58 28,58 23,52 23,52 28))', 1));
      
      INSERT INTO HAZARDOUS_SITES (row_id, site_id, name, location) 
      VALUES (1, 102, 'W. H. Kleenare Chemical Repository', sde.ST_PointFromText('point (52 24)',1));
    • 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))', 1));
      
      INSERT INTO hazardous_sites (row_id, site_id, name, location)
      VALUES (1, 102, 'W. H. Kleenare Chemical Repository', ST_Point('point (52 24)', 1);
    • DB2
      INSERT INTO SENSITIVE_AREAS (area_id, name, area_size, type, zone)
      VALUES (1, 'Summerhill Elementary School', 67920.64, 'school', db2gse.ST_PolyFromText('polygon ((52 28,58 28,58 23,52 23,52 28))', 1))
      
      INSERT INTO HAZARDOUS_SITES (row_id, site_id, name, location)
      VALUES (1, 102, 'W. H. Kleenare Chemical Repository', db2gse.ST_PointFromText('point (52 24)', 1))

3/6/2012