Unterschiede bei der SQL-Implementierung für den Datentyp 'ST_Geometry'
Die Implementierung von Spatial SQL (ST_Geometry) für Informix, DB2, Oracle und PostgreSQL unterscheidet sich nur geringfügig. Esri, Partner und einer der Entwickler des erweiterten Spatial SQL innerhalb der DBMS-Produkte von IBM, hat zusammen mit seinen Partnern versucht sicherzustellen, dass die Normen des Open Geospatial Consortium (OGC) so weit wie möglich berücksichtigt wurden.
Dabei sind allerdings drei Ausnahmen zu beachten, die jedoch keinen Verstoß gegen die Normen des OGC, sondern lediglich geringfügige Implementierungsunterschiede in Bezug auf die DBMS darstellen.
-
Prädikatwerte
Die Eigenschaftenfunktionen von Informix und PostgreSQL geben ein "t" für TRUE und ein "f" für FALSE zurück, wohingegen DB2 sowie Spatial Type for Oracle "1" für TRUE und "0" für FALSE verwenden.
In diesem Beispiel für Informix SQL gibt die SELECT-Anweisung nur die Gebäude-IDs zurück, für die die Funktion "ST_Contains" ein "t" für die Grundstücke zurückgibt, die Gebäudegrundrisse enthalten.
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-Eingabe
Bei Well-Known Text- (WKT), Well-Known Binary- (WKB) und Esri Shape-Formaten in DB2 wird die Raumbezugs-ID (SRID) mit der SRID-Methode des COORDREF-Objekts eingegeben. In Informix, Oracle und PostgreSQL wird der SRID-Wert direkt eingegeben.
In diesem Beispiel wird die SRID "1" direkt in die Funktion "linefromtext" von Informix eingegeben.
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)) );
-
Angeben von Funktionen
Beim Ausführen von SQL bei Tabellen in Enterprise-Geodatabases in Oracle müssen die ST_Geometry-Funktionen mit dem Schemanamen qualifiziert werden. Dies gilt für alle Geodatabases in Oracle, die in ArcGIS 9.3 oder höheren Versionen erstellt wurden.
Beim Ausführen von SQL bei Tabellen mit ST_Geometry-Spalten in DB2, Informix oder PostgreSQL können die ST_Geometry-Funktionen qualifiziert werden. Dies ist jedoch nicht erforderlich.