Présentation rapide des fonctions SQL utilisées avec les types ST_Geometry et ST_Raster
Le langage SQL (Structured Query Language) est un langage standardisé utilisé pour sélectionner et manipuler des données stockées dans un système de gestion de bases de données (SGBD). ArcSDE installe des fonctions SQL et des types spécifiques dans les géodatabases Oracle, PostgreSQL et Microsoft SQL Server. Vous pouvez utiliser SQL et ces fonctions et types pour interroger et modifier des données.
Ce manuel d'aide contient des rubriques pour chacune des fonctions implémentées avec le type spatial ST_Geometry dans une géodatabase ArcSDE Oracle et PostgreSQL et le type ST_Raster dans Oracle, PostgreSQL et SQL Server. Ces fonctions sont stockées dans la structure de l'administrateur ArcSDE (généralement l'utilisateur sde) et fournissent des opérations qui fonctionnent sur les géométries et les rasters, et qui renvoient des informations à leur sujet.
Les rubriques de fonction sont structurées comme suit :
-
Définition
Une description de la fonction.
-
Syntaxe
La syntaxe appropriée pour utiliser la fonction.
Notez qu'avec les opérateurs relationnels, l'ordre dans lequel les paramètres sont spécifiés est important : le premier paramètre correspond à la table à partir de laquelle la sélection est effectuée et le deuxième correspond à la table utilisée comme filtre.
-
Type de retour
Le type de données retourné quand la fonction est exécutée.
-
Exemple
Un exemple de scénario de l'utilisation de cette fonction
Les exemples présentés dans cette section ne créent pas d'index spatiaux sur les tables créées. Si vous voulez créer un index spatial, reportez-vous la rubrique Création d'index spatiaux pour les tables ayant une colonne ST_Geometry pour en savoir plus.
Concernant les références fonctionnelles d'IBM pour ST_Geometry, reportez-vous au chapitre 8 "SQL Functions" du manuel IBM Informix Spatial DataBlade Module User's Guide et aux chapitres 22 "Spatial functions: Categories and uses" et 23 "Spatial functions: Syntax and parameters" du manuel IBM DB2 Spatial Extender and Geodetic Extender User's Guide and Reference.
Identifiant de référence spatiale
Pour pouvoir créer une géométrie et l'insérer dans une table, vous devez posséder un ID de référence spatiale (SRID) valide à utiliser. Pour le type spatial pour Oracle, le SRID doit être dans la table ST_SPATIAL_REFERENCES et avoir un enregistrement correspondant dans la table SDE.SPATIAL_REFERENCES. Pour le type spatial pour PostgreSQL, il doit être dans la table public.sde_spatial_references.
La méthode la plus simple consiste à charger ou créer une classe d'entités avec les valeurs de référence spatiale valides que vous voulez utiliser à l'aide d'ArcGIS Desktop. Assurez-vous que la classe d'entités créée utilise le stockage ST_Geometry. Vous pourriez créer une classe d'entités vide avec les informations de référence spatiale dont vous avez besoin comme modèle. Cette opération crée un enregistrement dans les tables SDE.SPATIAL_REFERENCES et ST_SPATIAL_REFERENCES dans Oracle ou un enregistrement dans la table public.sde_spatial_references dans PostgreSQL. Vous interrogez la table COUCHES (Oracle) ou sde_layers (PostgreSQL) pour découvrir le SRID attribué à la couche. Vous pouvez alors utiliser ce SRID quand vous créez des tables spatiales et insérez des données à l'aide de SQL.
Dans le but d'utiliser les exemples fournis dans ce système d'aide, un enregistrement a été ajouté aux tables ST_SPATIAL_REFERENCES et sde_spatial_references pour représenter une référence spatiale inconnue. Cet enregistrement a un SRID égal à 0. Vous pouvez utiliser ce SRID pour les exemples de l'aide. Ce n'est pas un SRID officiel ; il est fourni dans le but d'exécuter l'exemple de code SQL. Il est vivement recommandé de ne pas utiliser ce SRID pour vos données de production.
Le SRID égal à 0 est présent dans les géodatabases ArcSDE pour Oracle depuis la version ArcGIS 9.3.
Si vous décidez d'utiliser une valeur SRID différente déjà présente dans votre base de données pour exécuter ces exemples, vous devez modifier les coordonnées des exemples pour refléter la référence spatiale de votre valeur SRID.
Si vous voulez ajouter une référence spatiale à la table ST_SPATIAL_REFERENCES ou sde_spatial_references avec SQL, consultez la rubrique Création de références spatiales avec SQL.
Liste des fonctions SQL
Cliquez sur les liens ci-dessous pour accéder aux fonctions que vous pouvez utiliser avec ST_Geometry dans Oracle et PostgreSQL et ST_Raster dans Oracle, PostgreSQL et SQL Server.
Depuis la version ArcSDE 9.3, lorsque vous utilisez les fonctions ST_Geometry dans une nouvelle installation d'ArcSDE pour Oracle, vous devez ajouter le qualificatif sde. aux fonctions et aux opérateurs. Par exemple, ST_Buffer devient sde.ST_Buffer. L'ajout de sde. indique au logiciel que la fonction est stockée dans la structure de l'utilisateur sde. Cela est nécessaire, parce que les synonymes publics qui étaient utilisés pour l'appariement aux fonctions ne sont plus pris en charge par Oracle. Dans le cadre de la version mise à niveau d'ArcSDE pour Oracle 10g ou Oracle 9i et PostgreSQL, la qualification est facultative, mais il est judicieux d'inclure le qualificateur.
Lorsque vous utilisez des fonctions ST_Raster dans toutes les bases de données, vous devez ajouter le qualificateur à la fonction avec la structure de l'administrateur ArcSDE. Dans la plupart des cas, il s'agit de sde. Toutefois, dans les bases de données SQL Server, il peut s'agir de dbo.
ST_Curve (Oracle uniquement) |
ST_GeomCollFromShape (PostgreSQL uniquement) |
ST_GeomCollFromWKB (PostgreSQL uniquement) |
ST_GeomFromShape (PostgreSQL uniquement) |
ST_GeomFromText (Oracle uniquement) |
ST_LineFromShape (PostgreSQL uniquement) |
ST_LineFromText (Oracle uniquement) |
ST_MLineFromShape (PostgreSQL uniquement) |
ST_MLineFromText (Oracle uniquement) |
ST_MPointFromShape (PostgreSQL uniquement) |
ST_MpointFromText (Oracle uniquement) |
ST_MpolyFromText (Oracle uniquement) |
ST_MultiCurve (Oracle uniquement) |
ST_MultiSurface (Oracle uniquement) |
ST_PointFromShape (PostgreSQL uniquement) |
ST_PointFromText (Oracle uniquement) |
ST_PolyFromShape (PostgreSQL uniquement) |
ST_PolyFromText (Oracle uniquement) |
ST_Surface (Oracle uniquement) |
ST_Entity (Oracle uniquement) |
ST_GeoSize (PostgreSQL uniquement) |
ST_Is3d (Oracle uniquement) |
ST_IsMeasured (Oracle uniquement) |
ST_EnvIntersects (Oracle uniquement) |
ST_Aggr_ConvexHull (Oracle uniquement) |
ST_Aggr_Intersection (Oracle uniquement) |
ST_Aggr_Union (Oracle uniquement) |
ST_Equalsrs (PostgreSQL uniquement) |
Pour les types spatiaux autres que ST_Geometry, tels que le type de géométrie PostGIS ou le type SDO_Geometry Oracle, consultez respectivement la documentation de PostGIS ou d'Oracle Spatial pour obtenir des informations sur les fonctions utilisées par chacun d'eux. La documentation de PostGIS se trouve sur le site Web www.postgis.org. La documentation d'Oracle se trouve sur le site Web d'Oracle Web site.
Les noms des fonctions varient selon l'implémentation de SGBD. Dans Oracle et SQL Server, les fonctions sont des méthodes qui font partie de l'objet ST_Raster ou ST_PixelData. Dans PostgreSQL, il s'agit de fonctions SQL implémentées au niveau du paquetage PL/SQL. Gardez à l'esprit que vous devez utiliser la casse indiquée (majuscules ou minuscules) lors de l'utilisation des fonctions avec SQL Server. En cas d'utilisation avec Oracle ou PostgreSQL, vous pouvez utiliser des majuscules, des minuscules, ou les deux.
Les fonctions équivalentes sont affichées dans la table suivante :
Fonctions Oracle et SQL Server | Fonctions PostgreSQL |
---|---|
ST_PixelData.getValueByLoc (SQL Server uniquement) | |
setvalue | |
ST_Raster.getValueByLoc (SQL Server uniquement) | |
ST_Raster_Util.checkLibraryVersion (Oracle uniquement) | |
ST_Raster_Util.getLibraryVersion (Oracle uniquement) | |