Einfügen von Features in eine Tabelle mit einer "ST_Geometry"-Spalte

Verwenden Sie die INSERT-SQL-Anweisung und "ST_Geometry"-Funktionen, um Datensätze in eine Tabelle mit einer "ST_Geometry"-Spalte einzufügen.

Daten, die in eine "ST_Geometry"-Spalte eingefügt werden sollen, können in einem der folgenden Geometrieformate angegeben werden:

Diese Formate erfordern die Verwendung von Konvertierungsfunktionen für die Ein- und Ausgabe, damit räumliche Daten in eine Datenbank eingefügt und daraus abgerufen werden können. Es werden Funktionen bereitgestellt, mit denen Daten aus diesen externen Formaten in die Datentypen konvertiert werden können, die in einer Oracle- oder PostgreSQL-Datenbank gespeichert sind. Für PostgreSQL werden auch Funktionen zum Konvertieren des Shapefile-Formats von ESRI bereitgestellt. Eine vollständige Liste der verfügbaren Funktionen finden Sie unter "Überblick über SQL-Funktionen, die mit dem Datentyp "ST_Geometry" verwendet werden".

Im folgenden Beispiel werden einige Datensätze in einer Oracle-, PostgreSQL- und DB2-Datenbank in Datenbanktabellen ("sensitive_areas" und "hazardous_sites") eingefügt. Mit der Funktion "ST_PolyFromText()" ("ST_Polygon "in PostgreSQL) wird das Well-Known Text-Format eines Polygons in den Datentyp "ST_Polygon" konvertiert, bevor es in die Spalte "ZONE" der Tabelle "sensitive_areas" eingefügt wird. Entsprechend wird mit der Funktion "ST_PointFromTextt()" ("ST_Point "in PostgreSQL) das Well-Known Text-Format eines Punktes in den Datentyp "ST_Point" konvertiert, bevor er in die Spalte "LOCATION" der Tabelle "hazardous_sites" eingefügt wird. Mit den Funktionen "ST_PolyFromWKB()" und "ST_PointFromWKB()" können Sie Daten auch im Well-Known Binary-Format eingeben.

HinweisHinweis:

Wenn Sie Funktionen mit räumlichen Datentypen in DB2 verwenden, müssen Sie diesen Funktionen das Präfix db2gse voranstellen.

Schritte:
  1. Verwenden Sie die INSERT-SQL-Anweisung, um den Tabellen "sensitive_areas" und "hazardous_sites" einen Datensatz hinzuzufügen.
    • 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