Llamadas de función ST_Geometry

Las funciones ST_Geometry en Oracle y PostgreSQL se implementan en un lenguaje estructurado de consultas (SQL). Este es un lenguaje a nivel de la base de datos. En Oracle, es Lenguaje procedural / Lenguaje estructurado de consultas (PL/SQL). En PostgreSQL, es PL/pgSQL.

Cuando usted accede a las columnas ST_Geometry por medio de funciones SQL, accede a la base de datos de manera directa. Por lo tanto, la base de datos debe ser capaz de acceder a las funciones ST_Geometry. En Oracle, la base de datos también genera un proceso extproc.

PostgreSQL

La biblioteca st_geometry debe almacenarse en el directorio de instalación de PostgreSQL para permitir que PostgreSQL acceda a las funciones ST_Geometry. Si instala ArcSDE en el mismo servidor Windows que PostgreSQL mediante el asistente de instalación de ArcSDE para PostgreSQL, st_geometry.dll se copia en la carpeta lib de PostgreSQL. Si la base de datos se encuentra en un servidor distinto del de ArcSDE, o si está haciendo una instalación en un servidor Linux, debe copiar la biblioteca al directorio de instalación PostgreSQL de manera manual. En los servidores Linux, copie la biblioteca st_geometry.so al directorio /usr/lib/pgsql.

Oracle

Las funciones se implementan en PL/SQL, que invoca funciones en archivos de biblioteca compartidos externos escritos en el lenguaje de programación C. Las funciones se invocan desde PL/SQL por medio de un alias que asigna el nombre de la biblioteca (ST_SHAPELIB en el caso de ST_Geometry en Oracle) al nombre del archivo de biblioteca. (Consulte la documentación para el comando CREATE LIBRARY de Oracle para obtener más información). La primera vez que se invoca una función de tipo espacial que requiere ST_SHAPELIB, la base de datos solicita al agente de escucha que genere un proceso extproc para la sesión SQL. Se otorga a extproc la ubicación de ST_SHAPELIB, el nombre de la función que se invocará y sus parámetros. El extproc carga ST_SHAPELIB e invoca la función. Cuando la función externa se completa, el extproc devuelve los resultados y permanece activo, a la espera de llamadas de función adicionales durante la sesión. El proceso extproc termina cuando la sesión SQL se desconecta.

Para que esto funcione, se necesita la configuración siguiente:


3/6/2012