Создать слой запроса (Управление данными)

Краткая информация

Создает слой запроса из таблицы СУБД на основании входного SQL-выражения выборки.

Использование

  • Слои запроса работают только с многопользовательскими базами данных. Этот инструмент не поддерживает в качестве входной рабочей области файловые базы геоданных.

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

  • Если результирующий SQL-запрос вернется в виде пространственного столбца, то на выходе будет слой пространственных объектов. Если SQL-запрос не вернется в виде пространственного столбца, то на выходе будет автономная таблица.

  • Необходимые для этого инструмента файлы подключения можно создать с помощью инструмента Создать подключение базы данных.

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

    • Тип геометрии – POINT
    • SRID – 1
    • Пространственная привязка – NAD1983

    Далее необходимо определить, следует ли изменить какое-либо из значений перед выполнением этого инструмента.

  • Для географических данных каждая запись полученного в результате SQL-выражения должна иметь соответственный идентификатор пространственной привязки (SRID). База данных использует значение SRID для определения пространственной привязки для своих данных. Для разных СУБД платформ имеются определенные функциональные различия в SRID. Некоторые СУБД платформы поддерживают множественные значения SRID в пределах одной таблицы. ArcGIS поддерживает только одно значение. Этот инструмент позволяет выбрать значение SRID или по умолчанию использовать значение SRID из первой записи в наборе результатов.

Параметры

ПодписьОписаниеТип данных
Входное подключение к базе данных

Файл подключения базы данных, который содержит данные для запроса.

Workspace
Имя выходного слоя

Выходное имя создаваемого векторного слоя или представления таблицы.

String
Запрос

SQL-выражение, которое определяет запрос выборки для выполнения в базе данных.

Примечание:

Эта строка должна пройти проверку перед включением оставшихся элементов управления. Проверка запустится, когда вы щелкните вне окна ввода. В процессе проверки выполняется запрос в базе данных и проверяется, соответствует ли результат SQL-запроса стандартам моделирования данных, установленным ArcGIS. Если пройти проверку не удается, инструмент выдает предупреждение. Единственное исключение – для ModelBuilder; в этом случае проверка не будет запускаться, если входные данные будут производными данными.

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

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

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

String
Поля уникального идентификатора
(Дополнительный)

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

String
Тип формы
(Дополнительный)

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

  • ТочкаВыходной слой запроса использует точечную геометрию.
  • МультиточкаВыходной слой запроса использует мультиточечную геометрию.
  • ПолигонВыходной слой запроса использует полигональную геометрию.
  • ПолилинияВыходной слой запроса использует полилинейную геометрию.
String
SRID
(Дополнительный)

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

String
Система координат
(Дополнительный)

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

Spatial Reference
Определение пространственных параметров слоя
(Дополнительный)

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

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

  • Отмечено – Используется для установки пространственных параметров слоя вручную. Это значение по умолчанию
  • Не отмечено – Параметры слоя будут определяться по первой строке запроса.
Boolean
Координаты содержат M-значения
(Дополнительный)

Задает, будут ли в слое содержаться m-значения.

  • Отмечено – В слое будут содержаться m-значения.
  • Не отмечено – В слое не будут содержаться m-значения. Это значение по умолчанию
Boolean
Координаты содержат Z-значения
(Дополнительный)

Устанавливает, будут ли в слое содержаться z-значения.

  • Отмечено – В слое будут содержаться z-значения.
  • Не отмечено – В слое не будут содержаться z-значения. Это значение по умолчанию
Boolean
Экстент
(Дополнительный)

Экстент слоя. Этот параметр используется только когда отмечена опция Задать пространственные параметры для слоя (spatial_properties = DEFINE_SPATIAL_PROPERTIES в Python). Экстент должен включать все объекты в таблице.

  • Текущий экстент отображения Вид карты — Экстент будет основан на активной карте или сцене. Эта опция доступна только при наличии активной карты.
  • Экстент слоя Layer — Экстент будет основан на активном слое карты. Используйте раскрывающийся список, чтобы выбрать доступный слой, или используйте опцию Экстент данных во всех слоях, чтобы получить объединенный экстент всех активных слоев карты, за исключением базовой карты. Эта опция доступна только при наличии активной карты со слоями.
  • Обзор Обзор — Экстент будет основан на существующем наборе данных.
  • Сбросить экстент Сбросить — Экстент будет сброшен до значения по умолчанию.
  • Координаты, введенные вручную – Координаты должны быть числовыми значениями и находиться в системе координат активной карты.

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

Extent

Производные выходные данные

ПодписьОписаниеТип данных
Выходной слой

Выходной слой запроса.

Table View

arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
ИмяОписаниеТип данных
input_database

Файл подключения базы данных, который содержит данные для запроса.

Workspace
out_layer_name

Выходное имя создаваемого векторного слоя или представления таблицы.

String
query

SQL-выражение, которое определяет запрос выборки для базы данных.

String
oid_fields
[oid_fields,...]
(Дополнительный)

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

String
shape_type
(Дополнительный)

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

  • POINTВыходной слой запроса использует точечную геометрию.
  • MULTIPOINTВыходной слой запроса использует мультиточечную геометрию.
  • POLYGONВыходной слой запроса использует полигональную геометрию.
  • POLYLINEВыходной слой запроса использует полилинейную геометрию.
String
srid
(Дополнительный)

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

String
spatial_reference
(Дополнительный)

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

Spatial Reference
spatial_properties
(Дополнительный)

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

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

  • DEFINE_SPATIAL_PROPERTIESЗадайте пространственные параметры слоя вручную. Это значение по умолчанию
  • DO_NOT_DEFINE_SPATIAL_PROPERTIESПараметры слоя будут определены по первой строке запроса.
Boolean
m_values
(Дополнительный)

Устанавливает, будут ли в слое содержаться m-значения.

  • INCLUDE_M_VALUESВ слое будут содержаться m-значения.
  • DO_NOT_INCLUDE_M_VALUESВ слое не будут содержаться m-значения. Это значение по умолчанию
Boolean
z_values
(Дополнительный)

Устанавливает, будут ли в слое содержаться z-значения.

  • INCLUDE_Z_VALUESВ слое будут содержаться z-значения.
  • DO_NOT_INCLUDE_Z_VALUESВ слое не будут содержаться z-значения. Это значение по умолчанию
Boolean
extent
(Дополнительный)

Экстент слоя. Этот параметр используется только когда отмечена опция Задать пространственные параметры для слоя (spatial_properties = DEFINE_SPATIAL_PROPERTIES в Python). Экстент должен включать все объекты в таблице.

  • MAXOF – Будет использоваться максимальный экстент всех входных данных.
  • MINOF – Будет использоваться минимальная область, которая является общей для всех входных данных.
  • DISPLAY — Экстент равен видимому отображению.
  • Имя слоя — Будет использоваться экстент указанного слоя.
  • Объект Extent — Будет использоваться экстент указанного объекта.
  • Строка координат, разделенная пробелами – Будет использоваться экстент указанной строки. Координаты выражаются в порядке x-мин, y-мин, x-макс, y-макс.
Extent

Производные выходные данные

ИмяОписаниеТип данных
out_layer

Выходной слой запроса.

Table View

Пример кода

MakeQueryLayer, пример 1 (окно Python)

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

import arcpy

sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Slickrock",
                                "select * from moabtrails where name = 'slickrock'",
                                "OBJECTID",
                                "POLYLINE",
                                "32611",
                                sr)
MakeQueryLayer, пример 2 (автономный скрипт)

В следующем автономном скрипте показано использование функции MakeQueryLayer.

# Name: MakeQueryLayer.py
# Description: Creates an output query layer based on a where clause.
#   This example shows how to create a spatial reference object using the
#   name of a coordinate system. It also demonstrates how to use two fields
#   to generate a dynamic unique row identifier for the query layer.


# Import system modules
import arcpy

# Create the spatial reference for the output layer.
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

# Run the tool
arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Single Track",
                                "select * from moabtrails where type = 'single'",
                                "UID;name",
                                "POLYLINE",
                                "32611",
                                sr)