Différences de mises en œuvre SQL du type ST_Geometry
Il existe peu de différences entre les implémentations du type SQL spatial (ST_Geometry) pour Informix, DB2, Oracle et PostgreSQL. Esri, en tant que partenaire et codéveloppeur du SQL spatial étendu au sein des systèmes de gestion de bases de données (SGBD) IBM, a participé à un effort collectif pour garantir la meilleure application possible des normes établies par l'OGC (Open Geospatial Consortium).
Il existe toutefois trois exceptions notables qui n'enfreignent pas les normes de l'OGC mais qui sont des particularités d'implémentation d'ordre mineur propres aux SGBD.
-
Valeurs de prédicat
Les prédicats d'Informix et PostgreSQL retournent t pour TRUE et f pour FALSE, alors que DB2 et le type spatial pour Oracle utilisent 1 pour TRUE et 0 pour FALSE.
Dans cet exemple de code SQL Informix, l'instruction select retourne uniquement les identifiants de bâtiments pour lesquels la fonction ST_Contains retourne t, correspondant aux lots de construction comprenant des emprises d'immeubles.
select bf.building_id "Building id" from buildingfootprints bf, lots where st_contains(lot,footprint) = 't';
select bf.building_id "Building id" from buildingfootprints bf, lots where sde.st_contains(lot,footprint) = 1;
-
SRID en entrée
Pour les représentations textuelles connues (WKT), binaires connues (WKB) et de forme Esri dans DB2, l'ID de référence spatiale (SRID) est entré par le biais de la méthode srid de l'objet coordref. Pour Informix, Oracle et PostgreSQL, la valeur SRID est saisie directement.
Dans cet exemple, la valeur d'identifiant SRID de 1 est saisie directement dans la fonction linefromtext d'Informix.
insert into linestring_test values ( linefromtext('linestring(10.01 20.03, 20.94 21.34, 35.93 19.04)', 1) );
insert into linestring_test values ( linefromtext('linestring(10.01 20.03, 20.94 21.34, 35.93 19.04)',coordref()..srid(1)) );
-
Qualification des fonctions
Les fonctions ST_Geometry doivent être qualifiées avec le nom de la structure lors de l'exécution du SQL sur des tables dans les géodatabase d'entreprise dans Oracle. Ceci est vrai pour toutes les géodatabases dans Oracle créées à l'aide d'ArcGIS version 9.3 ou ultérieure.
Vous pouvez qualifier les fonctions ST_Geometry lors de l'exécution du SQL sur des tables avec colonnes ST_Geometry dans DB2, Informix ou PostgreSQL, mais ce n'est pas obligatoire.