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 :

RemarqueRemarque :

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.

RemarqueRemarque :

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.

Fonctions de constructeur

ST_Curve (Oracle uniquement)

ST_GeomCollection

ST_GeomCollFromShape (PostgreSQL uniquement)

ST_GeomCollFromWKB (PostgreSQL uniquement)

Objet ST_Geometry

ST_GeomFromShape (PostgreSQL uniquement)

ST_GeomFromText (Oracle uniquement)

ST_GeomFromWKB

ST_LineFromShape (PostgreSQL uniquement)

ST_LineFromText (Oracle uniquement)

ST_LineFromWKB

Code ST_LineString

ST_MLineFromShape (PostgreSQL uniquement)

ST_MLineFromText (Oracle uniquement)

ST_MLineFromWKB

ST_MPointFromShape (PostgreSQL uniquement)

ST_MpointFromText (Oracle uniquement)

ST_MpointFromWKB

ST_MpolyFromText (Oracle uniquement)

ST_MpolyFromWKB

ST_MultiCurve (Oracle uniquement)

Code ST_MultiLineString

Code ST_MultiPoint

Code ST_MultiPolygon

ST_MultiSurface (Oracle uniquement)

Code ST_Point

ST_PointFromShape (PostgreSQL uniquement)

ST_PointFromText (Oracle uniquement)

ST_PointFromWKB

ST_PolyFromShape (PostgreSQL uniquement)

ST_PolyFromText (Oracle uniquement)

ST_PolyFromWKB

Code ST_Polygon

ST_Surface (Oracle uniquement)

ConseilConseil :

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 :


3/6/2012