Abfrage-Layer erstellen (Data Management)
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- oder Personal-Geodatabases sind keine gültigen Eingabe-Workspaces für dieses Werkzeug.
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: POINT
- SRID: 1
- Raumbezug: NAD1983
Dann bleibt es dem Benutzer überlassen, die Werte wie gewünscht zu ändern, bevor das Werkzeug ausgeführt wird.
Für geographische Daten sollte jeder Datensatz im von der SQL-Anweisung zurückgegebenen Ergebnis eine zugeordnete SRID (Raumbezugskennung) 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
Parameter | Erläuterung | Datentyp |
input_database |
Die Datenbankverbindungsdatei, die die abzufragenden Daten enthält. | Workspace |
out_layer_name |
Ausgabename für den Feature-Layer oder die Tabellensicht, der/die erstellt werden soll. | String |
query | 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) |
Der Shape-Typ für den Abfrage-Layer. 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) |
Legt den SRID-Wert (Raumbezugskennung) für Abfragen fest, die Geometrie zurückgeben. 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) |
Legt das Koordinatensystem fest, 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 |
Codebeispiel
Das folgende Skript im 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("Database Connections/moab.sde",
"Slickrock",
"select * from moabtrails where name = 'slickrock'",
"OBJECTID",
"POLYLINE",
"32611",
sr)
Das folgende eigenständige Skript 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("Database Connections/moab.sde",
"Single Track",
"select * from moabtrails where type = 'single'",
"UID;name",
"POLYLINE",
"32611",
sr)