Faire une couche de requête (Gestion des données)

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ètreExplicationType 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.

  • POINTLa couche de requête en sortie utilise la géométrie de point.
  • MULTIPOINTLa couche de requête en sortie utilise la géométrie de multi-points.
  • POLYGONLa couche de requête en sortie utilise la géométrie de polygone.
  • POLYLINELa couche de requête en sortie utilise la géométrie de polyligne.
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.

  • DEFINE_SPATIAL_PROPERTIESDéfinissez manuellement les propriétés spatiales de la couche. Il s’agit de l’option par défaut.
  • DO_NOT_DEFINE_SPATIAL_PROPERTIESLes propriétés des couches sont déterminées en fonction du premier enregistrement retourné par la requête.
Boolean
m_values
(Facultatif)

Spécifie si la couche possède des valeurs m.

  • INCLUDE_M_VALUESLa couche contiendra des valeurs m.
  • DO_NOT_INCLUDE_M_VALUESLa couche ne contiendra pas de valeurs m. Il s’agit de l’option par défaut.
Boolean
z_values
(Facultatif)

Spécifie si la couche possède des valeurs z.

  • INCLUDE_Z_VALUESLa couche contiendra des valeurs z.
  • DO_NOT_INCLUDE_Z_VALUESLa couche ne contiendra pas de valeurs z. Il s’agit de l’option par défaut.
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.

  • MAXOF : l’étendue maximale de toutes les entrées est utilisée.
  • MINOF : l’étendue minimale de toutes les entrées est utilisée.
  • DISPLAY : l’étendue est égale à l’affichage visible.
  • Nom de la couche : l’étendue de la couche spécifiée est utilisée.
  • Objet Extent : l’étendue de l’objet spécifié est utilisée.
  • Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
Extent

Sortie dérivée

NomExplicationType de données
out_layer

Couche de requête en sortie.

Vue tabulaire

Exemple de code

Exemple 1 d'utilisation de l'outil Générer une couche de requête (fenêtre Python)

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)
Exemple 2 d'utilisation de l'outil Générer une couche de requête (script autonome)

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)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes