Zusammenfassung
Erstellt auf Grundlage einer Eingabe-SQL-Select-Anweisung einen Abfrage-Layer aus einer DBMS-Tabelle.
Verwendung
Abfrage-Layer funktionieren nur mit Enterprise-Datenbanken. File-Geodatabases sind kein gültiger Eingabe-Workspace für dieses Werkzeug.
Der vom Werkzeug erstellte Layer ist ein temporärer Layer, der nach Sitzungsende nicht beibehalten wird. Zum Speichern der Daten müssen Sie das Projekt speichern oder mithilfe von Zeilen kopieren bzw. Features kopieren eine Kopie erstellen.
Wenn das Ergebnis der eingegebenen SQL-Abfrage eine räumliche Spalte zurückgibt, ist die Ausgabe ein Feature-Layer. Wenn die SQL-Abfrage keine räumliche Spalte zurückgibt, ist die Ausgabe eine Standalone-Tabelle.
Die für dieses Werkzeug notwendigen Verbindungsdateien können mit dem Werkzeug Datenbankverbindung erstellen erstellt werden.
Wenn das Ergebnis der SQL-Abfrage keine Zeilen zurückgibt, ist der Ausgabe-Abfrage-Layer leer und enthält nur das Schema der Spalten, die von der Abfrage zurückgegeben wurden. In diesem Fall erstellt das Werkzeug, wenn die zurückgegebenen Spalten eine räumliche Spalte enthalten, den Abfrage-Layer mithilfe der folgenden Standards:
- Geometrietyp: PUNKT
- SRID: 1
- Raumbezug: NAD1983
Danach müssen Sie ermitteln, ob vor der Ausführung des Werkzeugs einer dieser Werte geändert werden soll.
Für geographische Daten sollte jeder Datensatz im von der SQL-Anweisung zurückgegebenen Ergebnis eine zugeordnete Raumbezugskennung (SRID) haben. Der SRID-Wert wird von der Datenbank verwendet, um den Raumbezug für die Daten zu bestimmen. Die spezifischen funktionalen Unterschiede für die SRID ändern sich bei jeder DBMS-Plattform. Einige DBMS-Plattformen unterstützen mehrere SRID-Werte innerhalb der gleichen Tabelle; ArcGIS unterstützt nur einen Wert. Dieses Werkzeug bietet die Möglichkeit, den SRID-Wert auszuwählen oder es legt standardmäßig die SRID im Ergebnissatz des ersten Datensatzes fest.
Syntax
arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
Parameter | Erklärung | Datentyp |
input_database | Die Datenbankverbindungsdatei, die die abzufragenden Daten enthält. | Workspace |
out_layer_name | Der Ausgabename des Feature-Layers oder die Tabellensicht, der/die erstellt werden soll. | String |
query | Die SQL-Anweisung, die die Select-Abfrage definiert, die von der Datenbank ausgegeben werden soll. | String |
oid_fields [oid_fields,...] (optional) | Ein oder mehrere Felder aus der SELECT-Liste der SELECT-Anweisung, die verwendet werden können, um eine dynamische, eindeutige Zeilenkennung zu generieren. | String |
shape_type (optional) | Gibt den Shape-Typ des Abfrage-Layers an. Nur Datensätze aus dem Ergebnissatz der Abfrage, die dem angegebenen Shape-Typ entsprechen, werden im Ausgabe-Abfrage-Layer verwendet. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht der gewünschte Ausgabe-Shape-Typ ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt.
| String |
srid (optional) | Der SRID (Spatial Reference Identifier)-Wert für Abfragen, von denen Geometrie zurückgegeben wird. Nur Datensätze aus dem Ergebnissatz der Abfrage, die dem angegebenen SRID-Wert entsprechen, werden im Ausgabe-Abfrage-Layer verwendet. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht der gewünschte SRID-Wert ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt. | String |
spatial_reference (optional) | Das Koordinatensystem, das vom Ausgabe-Abfrage-Layer verwendet wird. Mit der Werkzeugvalidierung wird versucht, diese Eigenschaft auf Grundlage des ersten Datensatzes im Ergebnissatz festzulegen. Dies kann vor dem Ausführen des Werkzeugs geändert werden, wenn es nicht das gewünschte Ausgabekoordinatensystem ist. Dieser Parameter wird ignoriert, wenn der Ergebnissatz der Abfrage kein Geometriefeld zurückgibt. | Spatial Reference |
spatial_properties (optional) | Gibt an, wie die räumlichen Eigenschaften für den Layer definiert werden. Während des Validierungsvorgangs werden Dimensionalität, Geometrietyp, Raumbezug, SRID und eindeutige Kennungseigenschaften für den Abfrage-Layer festgelegt. Diese Werte basieren auf der ersten Zeile, die in der Abfrage zurückgegeben wurde. Wenn diese Eigenschaften manuell definiert und nicht vom Werkzeug aus der Tabelle abgerufen werden sollen, verwenden Sie den Standardwert für diesen Parameter.
| Boolean |
m_values (optional) | Gibt an, ob der Layer M-Werte enthält.
| Boolean |
z_values (optional) | Gibt an, ob der Layer Z-Werte enthält.
| Boolean |
extent (optional) | Die Ausdehnung des Layers. Dieser Parameter wird nur verwendet, wenn Räumliche Eigenschaften für den Layer definieren aktiviert ist (spatial_properties = DEFINE_SPATIAL_PROPERTIES in Python). Die Ausdehnung muss alle Features in der Tabelle enthalten.
| Extent |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_layer | Der Ausgabe-Abfrage-Layer. | Tabellenansicht |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie das Werkzeug MakeQueryLayer im unmittelbaren Modus verwendet wird.
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)
Im folgenden eigenständigen Skript wird veranschaulicht, wie das Werkzeug MakeQueryLayer verwendet wird.
# 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)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja