Для добавления записей в таблицу со столбцом ST_Geometry используется SQL-оператор INSERT и функции ST_Geometry.
Данные, вставляемые в столбец ST_Geometry, могут быть выражены в одном из следующих форматов:
- Текстовое представление WKT по стандарту OGC
- Двоичное представление WKB по стандарту OGC
Для вставки и получения геоданных в этих форматах требуется использование входных и выходных функций преобразования. Для преобразования данных из этих внешних форматов в типы данных, применяемые при хранении в базе данных Oracle, PostgreSQL или SQLite имеются специальные функции. В PostgreSQL также имеются функции конвертации в формат шейп-файла Esri.
В следующих примерах будет показана вставка нескольких записей в таблицы sensitive_areas и hazardous_sites в базах данных Oracle, PostgreSQL и SQLite. Функция ST_Geometry используется для преобразования текстового представления полигона в формате WKT в тип ST_Polygon перед вставкой в столбец ZONE таблицы sensitive_areas в Oracle. Функция ST_Polygon используется для преобразования текстового представления полигона в формате WKT в тип ST_Polygon перед вставкой в столбец ZONE таблицы sensitive_areas в PostgreSQL и SQLite. Сходным образом, функция ST_Geometry конвертирует WKT представление точки в тип ST_Point перед вставкой в столбец LOCATION таблицы hazardous_sites в Oracle, в функция ST_Point используется для конвертации WKT-представления точки в ST_Point перед вставкой в столбец LOCATION таблицы hazardous_sites в PostgreSQL и SQLite. Ввод данных в двоичном формате WKB выполняется с применением функций ST_PolyFromWKB() и ST_PointFromWKB().
- Войдите в редактор SQL и подключитесь к базе данных с таблицами, в которые нужно вставить данные, от лица пользователя с правами доступа для вставки данных в таблицы.
- Для добавления записи в таблицы sensitive_areas и hazardous_sites используется SQL-оператор INSERT.
- 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) );
- Oracle