"ST_Geometry"-Funktionsaufrufe

"ST_Geometry"-Funktionen werden unter Oracle und PostgreSQL per Structured Query Language (SQL) implementiert. Dies ist eine Sprache auf Datenbankebene. In Oracle ist dies die Procedural Language Structured Query Language (PL/SQL). In PostgreSQL ist dies "PL/pgSQL".

Wenn Sie in einer Oracle- oder PostgreSQL-Datenbank mit SQL-Funktionen auf ST_Geometry-Spalten zugreifen, rufen Sie die Datenbank direkt auf. Daher muss die Datenbank auf die ST_Geometry-Funktionen zugreifen können. In Oracle erzeugt die Datenbank außerdem einen "extproc"-Prozess.

In SQLite werden ST_Geometry-Funktionen in der ST_Geometry-Bibliothek in C implementiert. Sie müssen die ST_Geometry-Bibliothek aufrufen, um die ST_Geometry-Funktionen zu verwenden.

PostgreSQL

Die Bibliothek "st_geometry" muss im Installationsverzeichnis von PostgreSQL gespeichert werden, damit PostgreSQL auf die "ST_Geometry"-Funktionen zugreifen kann. Kopieren Sie die Datei "st_geometry.dll" (Windows) in den Bibliotheksordner des PostgreSQL-Installationsverzeichnisses. Bei Linux-Servern müssen Sie die Datei "st_geometry.so" (Linux) in das Verzeichnis "/usr/lib/pgsql" auf dem PostgreSQL-Server kopieren. Beide Dateien befinden sich im Ordner "DatabaseSupport" der ArcGIS-Client-Installation.

Oracle

Die Funktionen sind in PL/SQL implementiert. Bei dieser Sprache werden Funktionen in externen freigegebenen Bibliotheksdateien aufgerufen, die in der Programmiersprache C geschrieben wurden. Die Funktionen werden von PL/SQL mittels eines Aliasnamens abgerufen, der den Namen der Bibliothek (bei "ST_Geometry" in Oracle ist dies ST_SHAPELIB) mit dem Namen der Bibliotheksdatei verknüpft. (Weitere Informationen zum Oracle-Befehl CREATE LIBRARY finden Sie in der Dokumentation.) Wenn eine Spatial Type-Funktion, die ST_SHAPELIB erfordert, zum ersten Mal aufgerufen wird, fordert die Datenbank den Listener auf, einen "extproc"-Vorgang für die SQL-Sitzung zu erstellen. Extproc erhält den Speicherort von ST_SHAPELIB, den Namen der aufgerufenen Funktion und die entsprechenden Parameter. Extproc lädt ST_SHAPELIB und ruft die Funktion auf. Wenn die externe Funktion abgeschlossen ist, gibt extproc die Ergebnisse zurück, bleibt weiterhin aktiv und wartet auf weitere Funktionsaufrufe während dieser Sitzung. Der extproc-Vorgang wird beendet, wenn die SQL-Sitzung getrennt wird.

Für eine ordnungsgemäße Funktionsweise ist die folgende Konfiguration erforderlich:

SQLite

Sie müssen den Speicherort der ST_Geometry-Bibliothek festlegen und sie laden, damit der SQLite-Client auf die SQL-Funktionen zugreifen kann. Sie können den Speicherort der Bibliothek in der Systemumgebungsvariablen "PATH" (Windows) oder "LIBPATH" (Linux) des Clients festlegen und dann die Bibliothek laden, oder Sie können den Pfad angeben, wenn Sie die Bibliothek "ST_Geometry" laden. Weitere Anweisungen finden Sie unter Laden der SQLite-Bibliothek "ST_Geometry".

Verwandte Themen

5/10/2014