Insertar entidades a una tabla con una columna de ST_Geometry

Utilice la declaración SQL INSERT y las funciones ST_Geometry para insertar registros en una tabla con una columna ST_Geometry.

Los datos que se insertarán en una columna ST_Geometry pueden expresarse en uno de estos formatos de geometría:

Estos formatos requieren el uso de funciones de conversión de entrada y salida para insertar datos espaciales y recuperar datos de una base de datos. Las funciones se proporcionan para convertir datos de cada uno de estos formatos externos en los tipos de datos almacenados en una base de datos de Oracle o PostgreSQL. Para PostgreSQL, también se proporcionan las funciones para convertir los formatos shapefile de ESRI. Consulte "Vista general de las funciones de SQL usadas con ST_Geometry" para obtener la lista completa de las funciones que se proporcionan.

En el siguiente ejemplo, se insertan algunos registros en la tabla de la base de datos (sensitive_areas y hazardous_sites) en una base de datos de Oracle, PostgreSQL y DB2. La función ST_PolyFromText() (use ST_Polygon en PostgreSQL) convierte la representación de texto conocido de un polígono en un tipo ST_Polygon antes de insertarlo en la columna ZONE de la tabla sensitive_areas. Del mismo modo, la función ST_PointFromText() (use ST_Point en PostgreSQL) convierte la representación de texto conocido de un polígono en un tipo ST_Point antes de insertarlo en la columna LOCATION de la tabla hazardous_sites. También puede introducir datos en un formato binario conocido con las funciones ST_PolyFromWKB() y ST_PointFromWKB().

NotaNota:

cuando use funciones de tipo espacial en DB2, debe calificar las funciones con db2gse.

Pasos:
  1. Utilice la declaración INSERT de SQL para agregar un registro a las tablas sensitive_areas y hazardous_sites.
    • 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