Unterschiede bei der SQL-Implementierung für den Datentyp 'ST_Geometry'
Die Implementierung von Spatial SQL für Informix, DB2 und Spatial Type für Oracle oder 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 und Spatial Type for 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
SQL-Funktionen können mit dem Schemanamen angegeben werden. Beispiel: sde.ST_Buffer. Dies können Sie tun, wenn Sie SQL für Tabellen mit "ST_Geometry"-Spalten in einem der Datenbankmanagementsysteme ausführen. Für entsprechende Tabellen in Oracle-Datenbanken müssen die Funktionen jedoch mit dem Schemanamen angegeben werden. Dies gilt für alle ArcSDE-Geodatabases für Oracle, die neu in ArcGIS 9.3 oder einer höheren Version erstellt wurden.