Создание слоя запроса для данных в базе данных

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

Подсказка:

На этой странице объясняется, как создать слой запроса для таблицы в базе данных. Получить доступ к данным в облачном хранилище данных, см. раздел Создание слоя запроса для данных в облачном хранилище данных.

Слои запросов, которые обращаются к системным таблицам базы геоданных, не поддерживаются.

Предварительные требования и рабочие процессы

Прежде чем создавать слой запросов, прочтите Настройка базы данных и клиентов для работы со слоями запросов.

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

Подключение к базе данных

Прежде чем вы сможете построить слой запроса, вы должны подключиться к базе данных, которую вы хотите запросить.

Вы можете создать соединение с базой данных на панели Каталог, как описано в разделе Соединения с базой данных в ArcGIS AllSource, добавить его в проект и перейти к нему из диалогового окна Новый слой запроса, или вы можете создать соединение с базой данных из диалогового окна Новый слой запроса.

Построение SQL-запроса

Задайте SQL-запрос в текстовом окне Запрос, чтобы получить доступ к нужным данным из таблицы или вида.

Вы можете вставить SQL-запрос в текстовое поле Запрос или, если у вас нет заготовленного SQL-запроса, и вам надо просмотреть список таблиц, отметьте поле Список таблиц. Вы можете построить SQL-запрос, дважды щелкнув таблицы и столбцы, которые появляются в списке, либо перетащив из окна списка таблиц в текстовое поле Запрос.

Каждый столбец в базе геоданных имеет определенный тип данных. ArcGIS может работать с большинством обычных типов в базе данных. Однако некоторые типы не поддерживаются. Если тип столбца атрибутов – Unknown, это означает, что ArcGIS не поддерживает этот тип данных. Когда вы зададите запрос, все столбцы с неизвестным типом данных должны быть либо исключены, либо в запросе следует изменить их тип, на тот, который поддерживается ArcGIS. Для получения списка поддерживаемых базами данных типов данных см. раздел Типы данных СУБД, поддерживаемые в ArcGIS.

При построении слоя запроса используйте синтаксис SQL, специфичный для базы данных. Типичный пример: SELECT * FROM Test.myuser.US_States. В результате получается слой запроса, содержащий все строки из таблицы US_States. На карте показаны все Соединенные Штаты.

Чтобы понять, как использовать переменные в запросах SQL, см. раздел Задание параметров в слое запроса.

Проверка SQL-выражения

После построения запроса SQL проверьте его. Во время проверки ArcGIS использует свойства первой строки, возвращенной в таблице, для определения достоверности запроса.

ArcGIS также использует свойства первой строки, возвращаемой запросом, чтобы отфильтровать, какие другие строки будут отображаться на карте в соответствии с требованиями ArcGIS. Например, ArcGIS поддерживает только одну пространственную привязку в пространственной таблице. Если для пространственных объектов в вашем классе пространственных объектов используются разные ID пространственной привязки (SRID), по умолчанию слой запроса будет возвращать только те строки, которые имеют тот же SRID, что и первый объект, возвращенный запросом. Точно так же ArcGIS поддерживает только один тип геометрии для каждой таблицы. По умолчанию на карте будут отображаться только объекты с тем же типом геометрии, что и первая строка, возвращенная запросом. Чтобы использовать другой SRID или тип геометрии, определите пространственные свойства слоя запроса.

Укажите уникальный идентификатор

Уникальный идентификатор - это один или несколько столбцов, используемых ArcGIS для идентификации каждой строки в таблице.

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

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

Определите пространственные свойства (необязательно)

Для классов пространственных объектов или представлений, которые содержат пространственный столбец, вы можете задать следующее или использовать значения по умолчанию, обнаруженные ArcGIS при проверке:

  • Тип геометрии – свойство определяет тип слоя: точечный, мультиточечный, линейный или полигональный.
  • Значения Z и M - эти опции определяют, будет ли слой содержать объекты с координатами z или m.
  • Пространственная привязка – система координат и другие относящиеся к слою пространственные свойства.

    Бывает, что ArcGIS не может точно определить пространственную привязку, основываясь на текущем значении SRID, заданном для таких объектов в базе данных. Когда это произойдет, слой запроса будет иметь неизвестную пространственную привязку, и вы должны ее определить. Это не относится к облачным хранилищам данных, для которых вы не можете определить пространственную привязку.

    Примечание:
    Определение пространственной привязки для слоя запроса не приводит к повторному проецированию данных; он определяет только пространственную привязку, которая должна использоваться при отображении результатов запроса в ArcGIS.

  • SRID – идентификатор пространственной привязки, который используется для возвращения по запросу только объектов геометрии, имеющих ту же пространственную привязку. Значение SRID может быть пустым, если в слое запроса нет пространственного поля. Если это значение задано, все пространственные объекты, у которых нет указанного значения SRID геометрии, будут исключены из результирующего набора. Если данные в вашей базе данных используют пользовательский SRID, вы должны указать SRID в пространственных свойствах для слоя запроса. Это не относится к облачным хранилищам данных.

Создание слоя запроса для таблицы базы данных

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

Перетаскивание таблицы на карту

При перетаскивании класса объектов базы данных, таблицы или вида на карту из подключения базы данных на панели Каталог, ArcGIS AllSource автоматически создает слой запроса, выбирающий все строки и поля этого класса объектов, таблицы или вида. Это относится только к базам данных и не относится к многопользовательским базам геоданных.

ArcGIS AllSource вычисляет экстент данного слоя при добавлении его на карту перетаскиванием. Когда вы добавляете таблицу, содержащую множество объектов, вычисление экстента может занять некоторое время. Если вы знаете экстент данных или хотите использовать экстент пространственной привязки, вы можете использовать их вместо того, чтобы ждать вычисление экстента. Для этого нажмите соответствующую кнопку в диалоговом окне Вычисление экстента. Щелкнув на кнопку Ввод экстента, необходимо ввести корректные значения; экстент должен включать в себя все объекты таблицы.

Альтернативные способы определения экстента

После добавления слоя на карту при необходимости можно изменить слой запроса.

Задание запроса

Выполните следующие действия, чтобы определить слой запроса на карте в проекте ArcGIS AllSource с помощью диалогового окна Новый слой запроса:

  1. Откройте карту, на которую вы хотите добавить слой запроса в ArcGIS AllSource.
  2. Щелкните кнопку Добавить данные Добавить данные на ленте Карта и выберите кнопку Слой запроса Добавить слой запроса из ниспадающего списка.

    Откроется диалоговое окно Новый слой запроса.

  3. Укажите подключение одним из следующих способов:
    • Если файл подключения (.sde) уже существует в проекте, выберите его из ниспадающего списка.
    • Если соединение не существует в проекте, нажмите кнопку создания нового подключения к базе данных Новое подключение к базе геоданных и создайте подключение.
  4. В текстовом окне Имя укажите имя для создаваемого запроса.

    Это имя будет отображаться на панели Содержание карты.

  5. Введите или вставьте запрос SQL в текстовое окно Запроса.

    Чтобы увидеть список таблиц и столбцов в этих таблицах, отметьте поле Список таблиц. Вы можете дважды щелкнуть таблицу в разделе Список таблиц, чтобы добавить все столбцы в этой таблице в текстовое окно Запрос и изменить этот запрос в текстовом окне Запрос. Например, вы можете удалить столбцы из запроса, которые не желаете включать, и добавить в запрос условия, чтобы ограничить данные, включенные в слой запроса.

  6. Выберите способ определения пространственных свойств слоя.
    • Выберите Разрешить ArcGIS обнаружить пространственные свойства для слоя (опция по умолчанию), чтобы разрешить ArcGIS AllSource использование пространственных свойств первой строки, возвращаемой запросом. ArcGIS AllSource обнаруживает эти свойства при проверке выражения SQL.
    • Выберите Определить пространственные свойства слоя, если вы хотите, чтобы слой включал объекты с пространственными свойствами, отличными от свойств первой строки.
  7. Вы должны убедиться, что синтаксис запроса правильный и что ArcGIS может его использовать. Щелкните Проверить, чтобы начать процесс проверки.

    Проверка выполняет запрос в базе данных и проверяет, встречаются ли в результирующем запросе стандарты моделирования данных, приемлемые в ArcGIS. Слой запроса не добавляется на карту, пока он не проверен.

    Правила проверки следующие:

    • Результирующий набор должен иметь не больше одного пространственного поля.
    • Результирующий набор должен иметь не более одной пространственной привязки.
    • Результирующий набор должен иметь только один тип геометрии.
    • В результирующем наборе не должно быть каких-либо типов полей, не поддерживаемых в ArcGIS.

    Если проверка не пройдена по любой причине, появится сообщение об ошибке, чтобы вы могли изменить запрос.

    Проверка особенно важна при работе с пространственными базами данных, которые не поддерживают те же стандарты, что и ArcGIS.

  8. Когда запрос пройдет проверку, щелкните Далее.

    Подключитесь к базе данных и задайте запрос SQL для нового слоя запросов.

  9. Выберите поле уникального идентификатора для слоя запроса или используйте поле выбранное ArcGIS AllSource.

    Для всех объектов карты необходим уникальный идентификатор. Поэтому ваш слой запроса должен содержать поле уникального идентификатора, содержащее значение для каждого объекта. Подробнее о выборе поля уникального идентификатора для слоя запроса.

  10. Выберите тип геометрии и пространственную привязку.

    Эти параметры могут быть уже установлены, если вы решили разрешить ArcGIS AllSource определять пространственные свойства за вас.

    1. Выберите из ниспадающего меню тип геометрии.
    2. Щелкните кнопку Система координат Система координат, чтобы выбрать систему координат пространственной привязки, используемую данными, или импортируйте пространственную привязку из существующего набора данных. Помните, что это не перепроецирует данные.

    Укажите уникальный ID, тип геометрии и систему координат для пространственной привязки.

  11. Если вы решили разрешить ArcGIS AllSource определение пространственных свойств на шаге 6, щелкните Готово, чтобы добавить слой запроса на карту.
  12. Если вы выбрали определение пространственных свойств слоя на шаге 6, в диалоговом окне, показанном выше, появится дополнительный раздел. В этом разделе - Свойства экстента слоя - вы должны указать пространственный экстент слоя запроса, выбрав один из следующих вариантов:
    • Входной экстент - При щелчке по кнопке Далее необходимо ввести экстент. Указанный вами экстент должен быть действительным и включать все объекты в таблице.
    • Использовать экстент карты - Экстент текущей карты будет использоваться для экстента слоя запроса. Щелкните Далее, чтобы просмотреть значения экстентов карты.
    • Использовать экстент пространственной привязки - Экстент пространственной привязки данных используется для экстента слоя запроса. Для некоторых пространственных привязок это весь земной шар. Щелкните Далее и просмотрите значения экстентов пространственной привязки.
  13. Когда вы закончите настройку или просмотр экстента слоя, щелкните Готово, чтобы добавить слой запроса на карту.

Для получения информации об изменении свойств слоя запроса обратитесь к разделу Изменение слоя запроса.

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