Insertar entidades en una tabla con una columna 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. Se proporcionan funciones para convertir datos de cada uno de estos formatos externos en los tipos de datos almacenados en una base de datos de Oracle, PostgreSQL o SQLite. Para PostgreSQL, también se proporcionan las funciones para convertir los formatos shapefile de Esri.

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 SQLite. La función ST_Geometry se usa para convertir la representación de texto conocido de un polígono en un tipo ST_Polygon antes de insertarla en la columna ZONE de la tabla sensitive_areas en Oracle. La función ST_Polygon se usa para convertir la representación de texto conocido de un polígono en un tipo ST_Polygon antes de insertarla en la columna ZONE de la tabla sensitive_areas en PostgreSQL y SQLite. Asimismo, la función ST_Geometry convierte la representación de texto conocido de un punto en un tipo ST_Point antes de insertarla en la columna LOCATION de la tabla hazardous_sites en Oracle, y la función ST_Point se usa para convertir la representación de texto conocido de un punto en un ST_Point antes de insertarla en la columna LOCATION de la tabla hazardous_sites en PostgreSQL y SQLite. También puede introducir datos en un formato binario conocido con las funciones ST_PolyFromWKB() y ST_PointFromWKB().

Pasos:
  1. Inicie sesión en un editor SQL y conéctese a la base de datos que contiene las tablas en las que desea insertar datos como un usuario con privilegios para insertar datos en las tablas.
  2. 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_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
      );
      

Temas relacionados

5/10/2014