Создать слой запроса (Make Query Layer) (Управление данными)
Резюме
Создает слой запроса из таблицы СУБД на основании входного SQL-выражения выборки.
Использование
-
Слои запроса работают только с многопользовательскими базами данных. Этот инструмент не поддерживает в качестве входной рабочей области файловые или персональные базы геоданных.
Если результирующий SQL-запрос вернется в виде пространственного столбца, то на выходе будет слой пространственных объектов. Если SQL-запрос не вернется в виде пространственного столбца, то на выходе будет автономная таблица.
Необходимые для этого инструмента файлы подключения можно создать с помощью инструмента Создать подключение базы данных (Create Database Connection).
- Если результирующий SQL-запрос не возвращает ни одной строки, выходной слой запроса будет пустым и будет содержать только схему столбцов, полученных в результате запроса. В таком случае, если полученные столбцы содержат пространственный столбец, для создания слоя запроса инструмент будет использовать следующие значения по умолчанию:
- Тип геометрии: POINT
- SRID: 1
- Пространственная привязка: NAD1983
В дальнейшем перед запуском инструмента пользователь сможет изменить эти значения на свое усмотрение.
Для географических данных каждая запись, возвращенная результирующим SQL-выражением, должна иметь соответственный SRID (идентификатор пространственной привязки). База данных использует значение SRID для определения пространственной привязки для своих данных. Для разных СУБД платформ имеются определенные функциональные различия в SRID. Некоторые СУБД платформы поддерживают множественные значения SRID в пределах одной таблицы, ArcGIS поддерживает только одно значение. Этот инструмент предоставляет возможность выбора значения SRID или устанавливает значение SRID по умолчанию на основании первой записи в результирующем наборе.
Синтаксис
Параметр | Объяснение | Тип данных |
input_database |
Файл подключения базы данных, который содержит данные для запроса. | Workspace |
out_layer_name |
Выходное имя, которое будет создано для слоя пространственных объектов или представления таблицы. | String |
query | SQL-выражение, которое определяет выбранный запрос для обращения к базе данных. | String |
oid_fields [oid_fields,...] (дополнительно) |
Одно или несколько полей из выбранного списка утвержденной выборки, которые могут использоваться для создания динамического уникального идентификатора строки. | String |
shape_type (дополнительно) |
Тип формы для слоя запроса. В выходном слое запроса используются только те записи из результирующего набора запроса, которые соответствуют указанному типу формы. Проверка инструмента попытается установить это свойство на основании первой записи в результирующем наборе. Если такой тип выходной формы не является желательным, его можно изменить перед запуском инструмента. Если результирующий набор запроса не возвращает поле геометрии, этот параметр игнорируется.
| String |
srid (дополнительно) |
Устанавливает значение SRID (идентификатор пространственной привязки) для запросов, которые возвращают геометрию. В выходном слое запроса используются только те записи из результирующего набора запроса, которые соответствуют указанному значению SRID. Проверка инструмента попытается установить это свойство на основании первой записи в результирующем наборе. Если такое значение SRID не является желательным, его можно изменить перед запуском инструмента. Если результирующий набор запроса не возвращает поле геометрии, этот параметр игнорируется. | String |
spatial_reference (дополнительно) |
Устанавливает систему координат, которая используется выходным слоем запроса. Проверка инструмента попытается установить это свойство на основании первой записи в результирующем наборе. Если такая выходная система координат не является желательной, ее можно изменить перед запуском инструмента. Если результирующий набор запроса не возвращает поле геометрии, этот параметр игнорируется. | Spatial Reference |
Пример кода
Следующий скрипт окна Python демонстрирует, как использовать инструмент Создать слой запроса (MakeQueryLayer) во мгновенном режиме.
import arcpy
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")
arcpy.MakeQueryLayer_management("Database Connections/moab.sde",
"Slickrock",
"select * from moabtrails where name = 'slickrock'",
"OBJECTID",
"POLYLINE",
"32611",
sr)
Следующий автономный скрипт демонстрирует, как использовать инструмент Создать слой запроса (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("Database Connections/moab.sde",
"Single Track",
"select * from moabtrails where type = 'single'",
"UID;name",
"POLYLINE",
"32611",
sr)