Présentation rapide de l'utilisation de SQL avec des géodatabases d'entreprise
Vous pouvez utiliser SQL pour accéder à des jeux de données existants et à leurs propriétés, et pour mettre à jour à la fois des jeux de données versionnés et non versionnés dans des géodatabases d'entreprise.
Vous pouvez aussi utiliser SQL pour créer des tables qui peuvent être inscrites dans la géodatabase. Ces tables peuvent contenir des attributs non spatiaux ainsi que des types SQL spatiaux ou raster.
Lorsque vous accédez à une géodatabase avec SQL, vous y accédez au niveau du système de gestion de bases de données (SGBD). Cela signifie que les comportements et les fonctionnalités mis en œuvre par ArcGIS ne sont pas appliqués lorsque vous utilisez SQL. Cela signifie également que vous devez installer et configurer le client de SGBD sur les ordinateurs à partir desquels vous vous connecterez directement à la base de données.
Du point de vue SQL, vous accédez à des tables dans une base de données. Par conséquent, lorsque vous exécutez des commandes SQL sur des données dans la géodatabase, vous pouvez afficher les données et les informations les concernant, mais vous ne devez pas modifier les données qui participent au comportement de la géodatabase. Reportez-vous à la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations.
Utilisation de SQL pour accéder aux propriétés de jeux de données
Vous pouvez utiliser des instructions SELECT SQL pour obtenir les propriétés de jeux de données existants dans les géodatabases ArcSDE.
Les propriétés des jeux de données sont stockées dans les tables système des géodatabases. Pour obtenir ces informations, vous interrogez des colonnes spécifiques dans les tables système. Dans certains cas, ces colonnes contiennent des documents XML que vous interrogez à l'aide d'expressions Xpath pour obtenir des informations de propriété. Ceci est le cas pour les géodatabases stockées dans les bases de données IBM DB2, PostgreSQL et Microsoft SQL Server. En ce qui concerne les géodatabases dans Oracle, vous pouvez accéder aux vues système pour lire le texte brut dans une colonne CLOB.
Utilisation de SQL pour accéder aux données d'une géodatabase
Vous pouvez utiliser des instructions SELECT SQL pour renvoyer des données à partir de jeux de données existants dans les géodatabases. Si vous interrogez des jeux de données versionnés dans des géodatabases d'entreprise, vous devez utiliser des vues versionnées.
Les vues versionnées incorporent des vues de base de données ainsi que des procédures stockées, des déclencheurs et des fonctions pour vous permettre de lire ou de mettre à jour des données versionnées dans une table ou une classe d'entités de géodatabase à l'aide de SQL. Lorsqu'une vue versionnée accède à un jeu de données versionné, tous les enregistrements de la table métier sont sélectionnés et fusionnés avec les enregistrements des tables de deltas pour créer une vue qui inclut toutes les modifications apportées à la table métier dans le contexte de la version spécifiée.
Pour accéder à des données spatiales simples avec SQL et les analyser, utilisez les fonctions SQL spatiales installées avec le type spatial. Chaque type spatial a son propre ensemble de fonctions. Esri a défini des fonctions pour son type ST_Geometry dans Oracle et PostgreSQL, et chaque fournisseur de SGBD a défini des fonctions pour ses propres types SQL. Ces fonctions évaluent les relations spatiales, effectuent des opérations spatiales et renvoient et définissent des propriétés spatiales. Reportez-vous aux rubriques Relations spatiales, Opérations spatiales et Propriétés de géométrie pour obtenir une vue d'ensemble de cette fonctionnalité.
Modification des données d'une géodatabase à l'aide de SQL
Vous pouvez utiliser le SQL natif de votre SGBD pour modifier les données attributaires simples et non spatiales dans la géodatabase. Vous pouvez également utiliser les fonctions SQL spatiales installées avec les types spatiaux pour modifier des données spatiales simples avec SQL.
Vous pouvez utiliser SQL pour mettre à jour à la fois des jeux de données versionnés et non versionnés dans des géodatabases d'entreprise. Toutefois, ainsi qu'il a été mentionné précédemment dans cette rubrique, vous ne devez pas mettre à jour les jeux de données qui participent à la fonctionnalité des géodatabases.
Lorsque vous modifiez des données non versionnées, vous devez insérer des valeurs uniques dans les champs de l'identifiant d'objet, GUID et d'identifiant global avec SQL.
Vous devez utiliser des vues versionnées pour mettre à jour des données versionnées. Les déclencheurs utilisés par les vues versionnées mettent à jour les tables de deltas lorsque vous effectuez une mise à jour via une vue versionnée. Cela permet de s'assurer que les modifications sont insérées dans les tables de deltas lors de la mise à jour. De plus, les vues versionnées insèrent automatiquement des valeurs uniques dans les champs d'identifiant d'objet.
Création de tables avec SQL pour les utiliser avec ArcGIS
Vous pouvez utiliser le SQL natif de votre SGBD pour créer et renseigner des tables. Les tables spatiales et non spatiales que vous créez avec SQL peuvent être utilisées avec ArcMap. Vous pouvez afficher des tables spatiales dans ArcMap en créant des couches de requête. Les attributs qui se trouvent dans les tables spatiales et non spatiales peuvent également être directement consultés dans ArcGIS. L'interrogation des couches et la possibilité d'accéder directement aux tables sont deux fonctionnalités utiles si vous avez des tables qui fonctionnent avec un autre système sur votre site et que vous souhaitez être en mesure d'accéder à ces tables via ArcGIS ou de les associer à des tables de votre géodatabase.
Si vous souhaitez que vos tables utilisent les fonctionnalités de géodatabase, inscrivez la table dans la géodatabase. Gardez toutefois à l'esprit qu'une fois que les tables utilisent les fonctionnalités de géodatabase, vous ne pouvez pas les modifier avec SQL.
Consultez la rubrique Workflow : création de tables avec SQL et inscription avec la géodatabase pour savoir comment procéder.