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 plateforme de SGBD. Certaines plateformes 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 ModelBuilder, pour lequel 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 des 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 correct. 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 correcte. 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 correct. 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, ce paramètre 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 le paramètre Définir les propriétés spatiales de la couche est coché (spatial_properties = DEFINE_SPATIAL_PROPERTIES dans Python). L’étendue doit inclure toutes les entités de la table.

  • Current Display Extent (Étendue actuellement affichée) Vue cartographique : l’étendue repose sur la carte ou la scène active. Cette option est uniquement disponible lorsqu’une carte est active.
  • Extent of a Layer (Étendue d’une couche) Layer : l’étendue repose sur une couche de carte active. Utilisez la liste déroulante pour choisir une couche disponible ou utilisez l’option Extent of data in all layers (Étendue des données dans toutes les couches) pour obtenir l’étendue combinée de toutes les couches de carte actives, y compris le fond de carte. Cette option est uniquement disponible lorsqu’une carte avec des couches est active.
  • Browse (Parcourir) Parcourir : l’étendue repose sur un jeu de données existant.
  • Reset Extent (Réinitialiser l’étendue) Réinitialiser : la valeur par défaut de l’étendue est rétablie.
  • Manually entered coordinates (Coordonnées saisies manuellement) : les coordonnées doivent être des valeurs numériques incluses dans le système de coordonnées de la carte active.

    La carte peut utiliser des unités d’affichage différentes

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 correct. 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 correcte. 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 correct. 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 le paramètre Définir les propriétés spatiales de la couche est coché (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 commune à 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 ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction 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 ci-dessous 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)