ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

SQL и Esri ST_Geometry

  • Вставка данных ST_Geometry с помощью SQL
  • Изменение данных ST_Geometry с помощью SQL

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

Доступ к данным с помощью SQL позволяет внешним приложениям работать с табличными данными, управляемыми базой геоданных или базой данных. Эти внешние приложения могут быть непространственными приложениями базы данных или пользовательскими пространственными приложениями, разработанными в среде, отличной от ArcObjects.

При вставке или редактировании данных в базе геоданных или базе данных, используя SQL, выполните выражение COMMIT или ROLLBACK после того, как было выполнено выражения SQL, чтобы убедиться, что изменения применены к базе данных или были отменены. Это поможет предотвратить блокировку строк, страниц или таблиц, которые вы редактируете.

Вставка данных ST_Geometry с помощью SQL

Вы можете использовать SQL для вставки данных в таблицу базы данных или базы геоданных, имеющей столбец ST_Geometry. Используйте функции конструктора ST_Geometry, чтобы вставить разные типы геометрии. Вы также можете указать, какие выходные данные будут помещены в существующую таблицу после работы определенных функций пространственных операций.

При вставке геометрии в таблицу через SQL, учитывайте следующее:

  • Необходимо задать действительный ID пространственной привязки (SRID).
  • Чтобы продолжить использование таблицы в ArcGIS, поле для ObjectID не должно быть пустым.

Идентификаторы пространственной привязки (SRID)

SRID, указанный при вставке геометрии в таблицу Oracle, которая использует пространственный тип ST_Geometry, должен быть в таблице ST_SPATIAL_REFERENCES и иметь соответствующую запись в таблице SDE.SPATIAL_REFERENCES. SRID, указанный при вставке геометрии в таблицу PostgreSQL, которая использует пространственный тип ST_Geometry, должен быть в таблице public.sde_spatial_references. Начиная с версии ArcGIS 10.1, эти таблицы предварительно заполнены значениями пространственных привязок и SRID.

SRID, указанный при вставке геометрии в таблицу SQLite, которая использует пространственный тип ST_Geometry (geometryblob), должен быть в таблице st_spatial_reference_systems.

Если вам нужно применить пользовательскую пространственную привязку, которая не представлена в таблице, наиболее простой способ выполнить это – использовать ArcGIS Desktop, чтобы загрузить или создать класс объектов с желаемыми значениями пространственной привязки. Убедитесь, что в созданном классе объектов используется тип хранения ST_Geometry. Это приведет к созданию записи в SDE.SPATIAL_REFERENCES и таблице ST_SPATIAL_REFERENCES, если используется СУБД Oracle, в таблице public.sde_spatial_references, если используется СУБД PostgreSQL, или записи в таблице st_aux_spatial_reference_systems_table в SQLite.

В базах геоданных, чтобы определить идентификатор SRID, назначенный определенному слою, следует выполнить запрос к таблице LAYERS (Oracle) или sde_layers в (PostgreSQL). Затем этот идентификатор SRID можно использовать при создании пространственных таблиц и добавления данных с помощью SQL.

Вы также можете добавить пространственную привязку в таблицу ST_SPATIAL_REFERENCES или sde_spatial_references с помощью SQL. Более подробную информацию см. в разделе Создание пространственных привязок с помощью SQL.

Дополнительные сведения об идентификаторах SRID и пространственной привязке см. в разделах Что такое SRID? и Пространственные привязки.

идентификаторы ObjectID

Для запроса данных в ArcGIS требуется, чтобы таблица содержала поле уникального идентификатора.

Классы пространственных объектов, созданные в ArcGIS, всегда имеют поле ObjectID в качестве поля идентификатора. При вставке записей в класс пространственных объектов в ArcGIS, в поле ObjectID всегда вставляется уникальное значение. Поле ObjectID в таблице базы геоданных, поддерживается ArcGIS. Поле ObjectID в таблице базы данных, создается из ArcGIS и поддерживается СУБД.

Если вы вставляете записи в таблицу базы геоданных, используя SQL, необходимо использовать функцию Next_RowID, чтобы получить уникальное значение для поля ObjectID. При использовании SQL для вставки записей в таблицу базы данных, созданную в ArcGIS, СУБД заполняет значениями поле ObjectID.

Таблицы базы данных, созданные не в ArcGIS, должны иметь поле (или набор полей), которое ArcGIS может использовать как ObjectID. Если вы применяете родной для базы данных автоинкрементный тип данных для поля ID в вашей таблице, то это поле будет заполняться СУБД, когда вы вставляете запись с помощью SQL. Если вы вручную вносите значения в поле уникального идентификатора, убедитесь при редактировании таблицы из SQL, что все ID уникальны.

Примечание:

Вы не можете опубликовать данные из таблиц, где поле идентификатора заполняется пользователем.

Дополнительные сведения см. в разделе Что такое ObjectID?.

Изменение данных ST_Geometry с помощью SQL

Изменения через SQL в существующих файлах часто влияют на непространственные атрибуты, хранящиеся в таблице; однако вы можете внести изменения в данные столбца ST_Geometry с помощью функций конструктора в рамках SQL-выражений UPDATE.

Если данные хранятся в базе геоданных, изучите дополнительные советы, рекомендуемые при редактировании с SQL:

  • Не обновляйте записи, используя SQL, если данные были зарегистрированы как версионные. Это можно делать, только если вы используете SQL в сочетании с версионным представлением.
  • Не изменяйте никакие атрибуты, которые влияют на другие объекты в базе данных, для которых используются правила поведения в базе геоданных, например, классы отношений, объектно-связанные аннотации, топологии или сети.
Внимание:

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

Связанные разделы

  • Тип хранения ST_Geometry
  • Функции SQL, используемые совместно с ST_Geometry

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация