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 pour Informix, DB2 et du type spatial pour Oracle ou PostgreSQL. ESRI, en tant que partenaire et co-développeur du type SQL spatial étendu au sein des produits IBM de système de gestion de bases de données (SGBD), 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 fonctions de prédicat d'Informix et PostgreSQL renvoient un t pour True et un f pour False, tandis que DB2 et le type spatial pour Oracle utilisent 1 pour True et 0 pour False. Dans cet exemple d'Informix SQL, l'instruction SELECT renvoie uniquement les identifiants de bâtiments pour lesquels la fonction ST_Contains renvoie t pour les lots de bâtiments contenant des emprises.
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 et les types spatiaux d'Oracle et PostgreSQL, la valeur SRID est entrée 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
Le nom de la structure peut être ajouté aux fonctions SQL. Par exemple, sde.ST_Buffer. Cette opération peut être effectuée lors de l'exécution du SQL sur des tables possédant des colonnes ST_Geometry dans chacun des systèmes de gestion de bases de données. Toutefois, pour ce type de tables dans les bases de données Oracle, les fonctions doivent être qualifiées avec le nom de structure. Ceci est vrai pour toutes les géodatabase ArcSDE pour récemment créé dans ArcGIS 9.3 ou versions ultérieures.