ArcGIS Desktop

  • Документация
  • Поддержка

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

ArcGIS Online

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

ArcGIS Desktop

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

ArcGIS Enterprise

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

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

Запрос к системным таблицам базы геоданных с помощью SQL

После понимания отношений между четырьмя системными таблицами базы геоданных лучше всего можно посмотреть принципы их совместной работы, используя SQL. Если выбрать все строки и столбцы из таблицы элементов GDB_Items появится набор результатов, выглядящий примерно следующим образом (вместе со многими другими полями):

Значения, возвращаемые при опросе таблицы GDB_Items

Обратите внимание, что значения в столбце "Тип" хранятся в качестве идентификаторов UUID. Как говорилось в разделе Обзор системных таблиц базы геоданных, эти идентификаторы UUID могут быть разрешены с помощью таблицы GDB_ItemTypes, как показано в следующем запросе:

SELECT gdb_items.UUID, gdb_itemtypes.name AS "Type", gdb_items.name
   FROM gdb_items INNER JOIN gdb_itemtypes
   ON gdb_items.type = gdb_itemtypes.UUID;

Возвращает результат, похожий на результат запуска простого выражения SELECT в таблице GDB_Items, но при этом использует UUID в столбце Type (Тип), замененный читаемыми строками:

Текстовые значения в столбце "Тип"

Аналогичным образом, таблица GDB_ItemRelationships также содержит идентификаторы UUID, которые являются значениями ключей из других таблиц. Каждое отношение содержит два значения UUID из таблицы GDB_Items выше: одно для элемента назначения отношений, а другое – для исходного элемента. Для их разрешения в читаемые строки необходимо присоединить таблицу GDB_ItemRelationships к таблице GDB_Items дважды:

--SQL Server and PostgreSQL query
SELECT relationships.type,
   origin_items.name AS "Origin Name", dest_items.name AS "Dest Name"
FROM gdb_items AS origin_items,
   gdb_itemrelationships AS relationships,
   gdb_items AS dest_items
WHERE
   origin_items.UUID = relationships.originid AND
   dest_items.UUID = relationships.destid;

--Oracle query
SELECT relationships.type,
   origin_items.name AS "Origin Name", dest_items.name AS "Dest Name"
FROM sde.gdb_items origin_items,
   sde.gdb_itemrelationships relationships,
   sde.gdb_items dest_items
WHERE
   origin_items.UUID = relationships.originid AND
   dest_items.UUID = relationships.destid;

На рисунке ниже показан пример набора результатов, который может быть выведен после предыдущего запроса:

Текстовые значения имен элементов источника и назначения

Хотя здесь показаны отношения между элементами базы геоданных, требуется также тип отношений. Вы можете выполнить разрешение идентификатора UUID "Тип" посредством расширения предыдущего запроса с добавлением объединения с таблицей GDB_ItemRelationshipTypes:

--SQL Server and PostgreSQL query
SELECT reltypes.name AS type,
   origin_items.name AS "Origin Name", dest_items.name AS "Dest Name"
FROM gdb_items AS origin_items,
   gdb_itemrelationships AS relationships,
   gdb_items AS dest_items,
   gdb_itemrelationshiptypes AS reltypes
WHERE
   origin_items.UUID = relationships.originid AND
   dest_items.UUID = relationships.destid AND
   relationships.type = reltypes.UUID;

--Oracle query
SELECT reltypes.name AS type,
   origin_items.name AS "Origin Name", dest_items.name AS "Dest Name"
FROM sde.gdb_items origin_items,
   sde.gdb_itemrelationships relationships,
   sde.gdb_items dest_items,
   sde.gdb_itemrelationshiptypes reltypes
WHERE
   origin_items.UUID = relationships.originid AND
   dest_items.UUID = relationships.destid AND
   relationships.type = reltypes.UUID;

При этом выводится следующее:

Текстовые значения в столбце "Тип" из таблицы GDB_ItemRelationshipTypes

ArcGIS Desktop

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

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

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