"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 mithilfe von SQL-Funktionen auf "ST_Geometry"-Spalten zugreifen, greifen Sie direkt auf die Datenbank zu. Daher muss die Datenbank Zugriff auf die "ST_Geometry"-Funktionen haben. In Oracle erzeugt die Datenbank außerdem einen "extproc"-Prozess.

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:

Verwandte Themen

9/12/2013