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

Synthèse

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 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é ou si les données sont rendues persistantes 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.

Paramètres

ÉtiquetteExplicationType de données
Connexion à la géodatabase en entrée

Fichier de connexion à une base de données qui contient les données à interroger.

Workspace
Nom de la couche en sortie

Nom en sortie de la couche d’entités ou vue tabulaire à créer.

String
Requête

Instruction SQL définissant la requête Select à exécuter dans la base de données.

Remarque :

Cette chaîne doit transmettre la validation avant d'activer les contrôles restants. La validation est déclenchée lorsque vous cliquez à l'extérieur de cette zone de saisie. Le processus de validation exécute la requête dans la base de données et vérifie si le résultat de la requête SQL satisfait les normes de modélisation de données appliquées par ArcGIS. Si la validation échoue, l'outil renvoit un avertissement. L’unique exception concerne Model Builder, où la validation n’est pas déclenchée si l’entrée est une donnée dérivée.

Les règles de validation sont les suivantes :

  • Le résultat de la requête SQL ne doit comporter qu’un champ spatial.
  • Le résultat de la requête SQL ne doit comporter qu’une référence spatiale.
  • Le résultat de la requête SQL doit avoir un seul type d’entité, tel que point, multi-points, ligne ou polygone.
  • Le résultat de la requête SQL ne peut pas avoir de types de champ non pris en charge par ArcGIS ; la rubrique Types de données de champs ArcGIS décrit les types de champs pris en charge dans ArcGIS.

La validation est particulièrement importante si vous utilisez des données de bases de données spatiales n'appliquant pas les mêmes normes qu'ArcGIS.

String
Champ(s) d’identifiant unique
(Facultatif)

Un ou plusieurs champs de la liste d’instructions SELECT allant générer un identifiant d’enregistrement dynamique, unique.

String
Type de forme
(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 type Point.
  • Multi-pointLa couche de requête en sortie utilise la géométrie de type Multi-point.
  • PolygoneLa couche de requête en sortie utilise la géométrie de type Polygone.
  • PolyligneLa couche de requête en sortie utilise la géométrie de type 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
Système de coordonnées
(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
Définir les propriétés spatiales de la couche
(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, le paramètre Define spatial properties for the layer (Définir les propriétés spatiales de la couche) est sélectionné par défaut.

  • Activé : définissez manuellement les propriétés spatiales de la couche. Il s’agit de l’option par défaut.
  • Désactivé : les propriétés des couches sont déterminées en fonction du premier enregistrement retourné par la requête.
Boolean
Les coordonnées comportent des valeurs M
(Facultatif)

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

  • Activé : la couche contiendra des valeurs m.
  • Désactivé : la couche ne contiendra pas de valeurs m. Il s’agit de l’option par défaut.
Boolean
Les coordonnées comportent des valeurs Z
(Facultatif)

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

  • Activé : la couche contiendra des valeurs z.
  • Désactivé : la couche ne contiendra pas de valeurs z. Il s’agit de l’option par défaut.
Boolean
Étendue
(Facultatif)

L’étendue de la couche. Ce paramètre n’est utilisé que si 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.

  • Default (Par défaut) : l’étendue repose sur l’étendue maximale de toutes les entrées participantes. Il s’agit de l’option par défaut.
  • Current Display Extent (Étendue d’affichage actuelle) : l’étendue correspond au bloc de données ou à l’affichage visible. Cette option n’est pas disponible lorsque aucune carte n’est active.
  • As Specified Below (Comme spécifié ci-dessous) : l’étendue est basée sur les valeurs d’étendue minimale et maximale indiquées.
  • Browse (Parcourir) : l’étendue repose sur un jeu de données existant.
Extent

Sortie obtenue

ÉtiquetteExplicationType de données
Couche en sortie

Couche de requête en sortie.

Table View

arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
NomExplicationType 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 type Point.
  • MULTIPOINTLa couche de requête en sortie utilise la géométrie de type Multi-point.
  • POLYGONLa couche de requête en sortie utilise la géométrie de type Polygone.
  • POLYLINELa couche de requête en sortie utilise la géométrie de type 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 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 obtenue

NomExplicationType de données
out_layer

Couche de requête en sortie.

Table View

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 la fonction 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)