"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. Wenn Sie ArcSDE auf dem gleichen Windows-Server wie PostgreSQL installieren, indem Sie den ArcSDE for PostgreSQL-Installationsassistenten verwenden, wird die Datei "st_geometry.dll" für Sie in den Ordner "lib" von PostgreSQL kopiert. Falls sich die Datenbank auf einem anderen Server als ArcSDE befindet oder Sie die Installation auf einem Linux-Server durchführen, müssen Sie die Bibliothek manuell in das PostgreSQL-Installationsverzeichnis kopieren. Auf Linux-Servern müssen Sie die Bibliothek "st_geometry.so" in das Verzeichnis "/usr/lib/pgsql" kopieren.

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 und 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:


3/6/2012