Résumé
Crée une couche de requête depuis une table DBMS selon une instruction Select SQL en entrée.
Utilisation
Les couches de requête fonctionnent uniquement avec des bases de données d’entreprise. Les géodatabases fichier ne sont pas des espaces de travail en entrée valides pour cet outil.
La couche qui est créée par l’outil est temporaire et ne sera pas conservée une fois la session terminée sauf si le projet est enregistré et ou si les données sont conservées en réalisant une copie à l’aide de l’outil Copier des enregistrements ou Copier des entités.
Si le résultat de la requête SQL saisie renvoie une colonne spatiale, la sortie est une couche d'entités. Si la requête SQL ne renvoie pas de colonne spatiale, la sortie est une table autonome.
Les fichiers de connexion nécessaires à cet outil peuvent être créés à l'aide de l'outil Créer une connexion à une base de données.
Si le résultat de la requête SQL ne renvoie pas d'enregistrements, la couche de requête en sortie est vide, contenant uniquement la structure des colonnes renvoyées par la requête. Dans ce cas, si les colonnes renvoyées contiennent une colonne spatiale, l’outil utilise les valeurs par défaut suivantes pour créer la couche de requête :
- Type de Géométrie : POINT
- SRID : 1
- Référence spatiale : NAD1983
Vous devez alors déterminer si l’une de ces valeurs doit être changée avant d’exécuter l’outil.
En ce qui concerne les données géographiques, chaque enregistrement dans le résultat renvoyé par l’instruction SQL doit être associé à un identifiant de référence spatiale (SRID). La valeur SRID utilisée par la base de données pour déterminer la référence spatiale pour les données. Les différences fonctionnelles spécifiques pour le SRID varient selon la plate-forme de SGBD. Certaines plates-formes de SGBD prennent en charge plusieurs valeurs SRID dans la même table ; ArcGIS ne prend en charge qu’une seule valeur. Cet outil vous permet de choisir la valeur SRID ou prend par défaut le SRID du premier enregistrement du jeu de résultats.
Syntaxe
arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
Paramètre | Explication | Type de données |
input_database | Fichier de connexion à une base de données qui contient les données à interroger. | Workspace |
out_layer_name | Nom en sortie de la couche d’entités ou vue tabulaire à créer. | String |
query | Instruction SQL définissant la requête Select à adresser à la base de données. | String |
oid_fields [oid_fields,...] (Facultatif) | Un ou plusieurs champs de la liste d’instructions SELECT allant générer un identifiant d’enregistrement dynamique, unique. | String |
shape_type (Facultatif) | Spécifie le type de forme de la couche de requête. Seuls les enregistrements du jeu de résultats de la requête qui correspondent au type de forme spécifié sont utilisés dans la couche de requête en sortie. La validation de l'outil tente de définir cette propriété selon le premier enregistrement dans le jeu de résultats. Il est possible de modifier ce comportement avant d'exécuter l'outil si ce n'est pas le type de forme en sortie souhaité. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie.
| String |
srid (Facultatif) | La valeur d’identifiant de référence spatiale (SRID) pour les requêtes retournant une géométrie. Seuls les enregistrements du jeu de résultats de la requête qui correspondent à la valeur SRID spécifiée sont utilisés dans la couche de requête en sortie. La validation de l'outil tente de définir cette propriété selon le premier enregistrement dans le jeu de résultats. Il est possible de modifier ce comportement avant d'exécuter l'outil si ce n'est pas la valeur SRID en sortie souhaitée. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie. | String |
spatial_reference (Facultatif) | Le système de coordonnées qui sera utilisé par la couche de requête en sortie. La validation de l'outil tente de définir cette propriété selon le premier enregistrement dans le jeu de résultats. Il est possible de modifier ce comportement avant d'exécuter l'outil si ce n'est pas le système de coordonnées en sortie souhaité. Ce paramètre est ignoré si le jeu de résultats de la requête ne renvoie pas de champ de géométrie. | Spatial Reference |
spatial_properties (Facultatif) | Spécifie comment les propriétés spatiales de la couche seront définies. Au cours de la validation, les propriétés de dimensionalité, de type de géométrie, de référence spatiale, de SRID et d’identifiant unique sont définies sur la couche de requête. Ces valeurs sont basées sur le premier enregistrement renvoyé dans la requête. Pour définir manuellement ces propriétés plutôt que la table soit interrogée par l’outil afin de les obtenir, utilisez la valeur par défaut de ce paramètre.
| Boolean |
m_values (Facultatif) | Spécifie si la couche possède des valeurs m.
| Boolean |
z_values (Facultatif) | Spécifie si la couche possède des valeurs z.
| Boolean |
extent (Facultatif) | L’étendue de la couche. Ce paramètre n’est utilisé que si Define spatial properties for the layer (Définir les propriétés spatiales de la couche) est sélectionné (spatial_properties = DEFINE_SPATIAL_PROPERTIES dans Python). L’étendue doit inclure toutes les entités de la table.
| Extent |
Sortie dérivée
Nom | Explication | Type de données |
out_layer | Couche de requête en sortie. | Vue tabulaire |
Exemple de code
Le script de fenêtre Python suivant montre comment utiliser l'outil MakeQueryLayer en mode immédiat.
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)
Le script autonome suivant illustre l'utilisation de l'outil 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)
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?