Краткий обзор использования SQL с ST_Geometry
Вы можете использовать язык структурированных запросов (SQL) для системы управления базой данных (СУБД), типы данных и форматы таблиц для работы с информацией, хранящейся в базе геоданных или базе данных, в которую был установлен тип ST_Geometry. SQL - это язык базы данных, который поддерживает определение данных и команды для управления данными.
Доступ к информации в базе геоданных с помощью SQL позволяет внешним приложениям работать с табличными данными, управляемыми базой геоданных. Эти внешние приложения могут быть непространственными приложениями базы данных или пользовательскими пространственными приложениями, разработанными в среде, отличной от ArcObjects.

Тем не менее, помните, что использование SQL-доступа к базе геоданных не учитывает такую функциональность базы геоданных, как версии, топология, сети, наборы данных рельефа (terrain), объектно-связанные аннотации и другие расширения классов или рабочих областей. Возможно использование объектов СУБД, таких как триггеры и встроенные процедуры, для поддержки связей между таблицами, которые требуются для определенной функциональности базы геоданных. Однако выполнение SQL-команд в отношении базы данных без учета этой дополнительной функциональности - например, использование выражений INSERT для добавления записей в бизнес-таблицу или добавление столбца в существующий класс объектов - обходит функциональность базы геоданных и может повредить связи между данными в вашей базе геоданных.
В целом следующие рекомендации важны при использовании SQL для изменения пространственных или непространственных данных в базе геоданных:
- Не обновляйте записи, используя SQL, после того, как данные были зарегистрированы как версионные. Это можно делать, только если вы используете SQL в сочетании с версионным представлением.
- При обновлении неверсионных данных с помощью SQL, не изменяйте никакие атрибуты, которые влияют на другие объекты в базе данных, использующие поведение базы геоданных, такое как классы отношений, объектно-связанные аннотации, топологию или сети.
- Выполните выражение COMMIT или ROLLBACK после того, как было выполнено выражения SQL, чтобы убедиться, что изменения применены к базе данных, или отменены. Это верно как для данных в базе геоданных, так и для данных в базе данных.
Тип хранения ST_Geometry
Тип данных SQL ST_Geometry используется для баз данных IBM DB2, Informix, Oracle и PostgreSQL. База данных может содержать базу геоданных, но это не обязательно.
Тип данных ST_Geometry может использоваться с клиентами ArcGIS; он также предоставляет SQL-доступ к простой геометрии класса объектов для приложений, созданных третьими лицами.
ST_Geometry осуществляет выполнение спецификаций OGC и ISO SQL Multimedia Specification for Spatial. Ссылка на OGC - это OpenGIS Implementation Specification for Geographic Information – Simple feature access - Part 2: SQL option, version 1.1.0. Ссылка на ISO - это ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial.
Обратитесь к документации IBM DB2 и Informix для получения дополнительной информации об использовании SQL с типом ST_Geometry в DB2 или Informix. См. статьи в данном разделе Справки пользователя ArcGIS для получения дополнительной информации об использовании SQL с типом ST_Geometry в Oracle и PostgreSQL.

Раздел "Использование пространственных типов с SQL" данной Справки содержит некоторые примеры для DB2 и Informix; однако, для получения полной информации об использовании ST_Geometry с этими базами данных, ознакомьтесь с документацией IBM.
Идентификатор пространственной привязки (SRID)
Перед созданием геометрии и добавлением ее в таблицу необходимо получить допустимый идентификатор пространственной привязки (SRID). Для пространственного типа в Oracle идентификатор SRID должен содержаться в таблице ST_SPATIAL_REFERENCES и иметь соответствующую запись в таблице SDE.SPATIAL_REFERENCES. Для пространственного типа в PostgreSQL идентификатор SRID должен содержаться в таблице public.sde_spatial_references. Начиная с версии ArcGIS 10.1, эти таблицы предварительно заполнены значениями пространственными привязками.
Если вам нужно использовать пользовательскую пространственную привязку, которая не представлена в таблице, наиболее простой способ выполнить это - загрузить или создать класс объектов с корректными значениями пространственной привязки, которую вы хотите использовать, используя ArcGIS for Desktop. Убедитесь, что в созданном классе объектов используется тип хранения ST_Geometry. Можно создать необходимый пустой класс объектов с пространственными привязками, а затем использовать его в качестве шаблона. Это приведет к созданию записи в SDE.SPATIAL_REFERENCES и таблице ST_SPATIAL_REFERENCES, если используется СУБД Oracle, или записи в таблице public.sde_spatial_references, если используется СУБД PostgreSQL. Выполните запрос к таблице LAYERS (Oracle) или к таблице sde_layers (PostgreSQL), чтобы выяснить значение SRID, присвоенное слою. Затем этот идентификатор SRID можно использовать при создании пространственных таблиц и добавления данных с помощью SQL.
В таблицы ST_SPATIAL_REFERENCES и sde_spatial_references, используемые в приведенных примерах, добавлена специальная запись, которая позволяет обозначить неизвестную пространственную привязку. Эта запись имеет идентификатор SRID равный 0. Можно использовать этот идентификатор в примерах, приведенных в данной справочной системе. Это неофициальный идентификатор SRID. Он приводится только в рамках предоставления примерного кода SQL. Настоятельно рекомендуется не использовать этот идентификатор SRID в боевой среде.
Если для выполнения этих примеров необходимо использовать другое значение идентификатора SRID, которое уже присутствует в базе данных, необходимо изменить координаты в примерах, чтобы они отражали пространственную привязку нужного значения SRID.
Если необходимо добавить пространственную привязку в таблицу ST_SPATIAL_REFERENCES или sde_spatial_references с помощью SQL, см. раздел Создание пространственных привязок с помощью SQL.