В реализациях пространственного языка SQL (ST_Geometry) для Informix, DB2, Oracle, PostgreSQL и SQLite существуют некоторые различия. Компания Esri (а также компания IBM в случае с Informix и DB2) работали совместно, чтобы обеспечить полное применение стандартов консорциума Open Geospatial Consortium (OGC).
Однако существует два исключения, на деле не нарушающих стандарты OGC, но представляющих собой незначительные различия в реализации СУБД.
- Предикатные значения
Предикатные функции ST_Geometry Informix и PostgreSQL возвращают t для значения истина и f для значения ложь, в то время как ST_Geometry в DB2, Oracle и SQLite используют 1 для значения истина и 0 для значения ложь.
В этом примере Informix SQL инструкция select возвращает только те ID, для которых функция ST_Contains возвращает значение t для строительных участков с контурами зданий.
Та же функция ST_Contains для инструкции Oracle SELECT возвращает такие же ID, для которых значение 1 возвращается для участков с контурами зданий.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;
- Квалифицирующие функции
Функции ST_Geometry должны соответствовать имени схемы при выполнении операций SQL для обработки таблиц в многопользовательских баз геоданных в Oracle.
Функции ST_Geometry можно квалифицировать при выполнении операций SQL для обработки таблиц со столбцами ST_Geometry в DB2, Informix и PostgreSQL, но это необязательно.
SQLite не использует имена схем, поэтому вы не квалифицируете функции ST_Geometry при запуске SQL для обработки таблиц со столбцами ST_Geometry.