Resumen
Crea una capa de consulta a partir de una tabla DBMS en función de una sentencia SQL SELECT de entrada.
Uso
Las capas de consulta solamente funcionarán con bases de datos corporativas. Las geodatabases de archivos no son un espacio de trabajo de entrada válido para esta herramienta.
La capa creada por la herramienta es temporal y, una vez finalizada la sesión, no permanece en el sistema a menos que se guarde el proyecto o los datos se conviertan en persistentes haciendo una copia con Copiar filas o Copiar entidades.
Si el resultado de la consulta SQL ingresada devuelve una columna espacial, el resultado será una capa de entidad. Si la consulta SQL no devuelve una columna espacial, el resultado será una tabla independiente.
Los archivos de conexión necesarios para esta herramienta se pueden crear usando la herramienta Crear conexión de la base de datos.
Si el resultado de la consulta SQL no devuelve ninguna fila, la capa de consulta de resultado estará vacía, y solamente incluirá el esquema de las columnas que haya devuelto la consulta. En este caso, si las columnas que se devolvieron contienen una columna espacial, la herramienta usará los siguientes valores predeterminados para crear la capa de consulta:
- Tipo de geometría: POINT
- SRID: 1
- Referencia espacial: NAD1983
A continuación, debe determinar si es necesario modificar alguno de estos valores antes de ejecutar la herramienta.
Para los datos geográficos, cada registro en el resultado que se devuelve de la sentencia SQL debe tener un identificador de referencia espacial (SRID) asociado. El valor SRID lo usa la base de datos para determinar la referencia espacial para los datos. Las diferencias funcionales específicas para el SRID variarán entre cada plataforma DBMS. Algunas plataformas DBMS admiten varios valores SRID dentro de la misma tabla; ArcGIS solo admite un valor. Esta herramienta le permite elegir el valor SRID o tendrá un valor predeterminado en SRID desde el primer registro en el conjunto de resultados.
Sintaxis
arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
Parámetro | Explicación | Tipo de datos |
input_database | El archivos de conexión de base de datos que contiene los datos a consultar. | Workspace |
out_layer_name | El nombre de salida de la capa de entidades o la vista de tabla que se creará. | String |
query | La sentencia SQL que define la consulta de selección que se emitirá en la base de datos. | String |
oid_fields [oid_fields,...] (Opcional) | Uno o varios campos de la lista SELECT de la sentencia SELECT que generarán un identificador de fila único y dinámico. | String |
shape_type (Opcional) | Especifica el tipo de forma de la capa de consulta. Solamente aquellos registros del conjunto de resultados de la consulta que coinciden con el tipo de forma específico que se usará en la capa de consulta de salida. La validación de la herramienta intentará establecer esta propiedad con base en el primer registro en el conjunto de resultados. Esto se puede cambiar antes de ejecutar la herramienta si no tiene el tipo de forma de salida deseado. Este parámetro se ignora si el resultado establecido de la consulta no devuelve un campo de geometría.
| String |
srid (Opcional) | El valor de identificador de referencia espacial (SRID) para consultas que devuelven geometría. Solamente aquellos registros del conjunto de resultados de la consulta que coinciden con el valor SRID específico que se usará en la capa de consulta de salida. La validación de la herramienta intentará establecer esta propiedad con base en el primer registro en el conjunto de resultados. Esto se puede cambiar antes de ejecutar la herramienta si no tiene el valor SRID de salida deseado. Este parámetro se ignora si el resultado establecido de la consulta no devuelve un campo de geometría. | String |
spatial_reference (Opcional) | El sistema de coordenadas que usará la capa de consulta de salida. La validación de la herramienta intentará establecer esta propiedad con base en el primer registro en el conjunto de resultados. Esto se puede cambiar antes de ejecutar la herramienta si no tiene el sistema de coordenadas de salida deseado. Este parámetro se ignora si el resultado establecido de la consulta no devuelve un campo de geometría. | Spatial Reference |
spatial_properties (Opcional) | Especifica cómo se definirán las propiedades espaciales de la capa. Durante el proceso de validación, las propiedades de dimensionalidad, tipo de geometría, referencia espacial, SRID e identificador único se establecerán en la capa de consulta. Estos valores están basados en la primera fila devuelta en la consulta. Para definir manualmente estas propiedades en lugar de que la herramienta haga una consulta a la tabla para obtenerlas, utilice el valor predeterminado de este parámetro.
| Boolean |
m_values (Opcional) | Especifica si la capa tendrá valores m.
| Boolean |
z_values (Opcional) | Especifica si la capa tendrá valores z.
| Boolean |
extent (Opcional) | La extensión de la capa. Este parámetro se utiliza solamente si Definir propiedades espaciales de la capa está activado (spatial_properties = DEFINE_SPATIAL_PROPERTIES en Python). La extensión debe incluir todas las entidades de la tabla.
| Extent |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_layer | La capa de consulta de salida. | Vista de tabla |
Muestra de código
El script de la ventana de Python muestra cómo utilizar la herramienta MakeQueryLayer en el modo inmediato.
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)
El siguiente script independiente muestra cómo utilizar la herramienta 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)
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí