Appels de fonction ST_Geometry

Les fonctions ST_Geometry dans Oracle et PostgreSQL sont implémentées en langage SQL (Structured Query Language). Il s'agit d'un langage au niveau de la base de données. Dans Oracle, il s'agit du langage PL/SQL (Procedural Language Structured Query Language). Dans PostgreSQL, le langage utilisé est PL/pgSQL.

Lorsque vous accédez aux colonnes ST_Geometry à l'aide de fonctions SQL, vous accédez directement à la base de données. Par conséquent, la base de données doit être en mesure d'accéder aux fonctions ST_Geometry. Dans Oracle, la base de données engendre également un processus extproc.

PostgreSQL

La bibliothèque st_geometry doit être stockée dans le répertoire d'installation de PostgreSQL pour permettre à PostgreSQL d'accéder aux fonctions ST_Geometry. Si vous installez ArcSDE sur le même serveur Windows que PostgreSQL à l'aide de l'assistant d'installation d'ArcSDE pour PostgreSQL, le fichier st_geometry.dll est copié dans le dossier lib de PostgreSQL. Si votre base de données se trouve sur un serveur différent d'ArcSDE ou si vous procédez à l'installation sur un serveur Linux, vous devez copier manuellement la bibliothèque dans le répertoire d'installation de PostgreSQL. Sur les serveurs Linux, copiez la bibliothèque st_geometry.so dans le répertoire /usr/lib/pgsql.

Oracle

Les fonctions sont implémentées dans PL/SQL, qui appelle les fonctions écrites en langage de programmation C dans les fichiers de bibliothèque partagés externes. Les fonctions sont appelées à partir de PL/SQL à l'aide d'un nom d'alias qui fait correspondre le nom de la bibliothèque (dans le cas de ST_Geometry dans Oracle, ST_SHAPELIB) avec le nom du fichier de bibliothèque. (Pour plus d'informations, consultez la documentation relative à la commande Oracle CREATE LIBRARY.) La première fois qu'une fonction de type spatial qui requiert ST_SHAPELIB est appelée, la base de données demande au processus d'écoute d'engendrer un processus extproc pour la session SQL. Il est fourni au processus extproc l'emplacement de ST_SHAPELIB, le nom de la fonction à appeler ainsi que ses paramètres. Le processus extproc charge ST_SHAPELIB et appelle la fonction. Lorsque la fonction externe prend fin, le processus extproc renvoie les résultats et reste actif, dans l'attente d'appels de fonction supplémentaires au cours de la session. Le processus extproc prend fin à la déconnexion de la session SQL.

Pour que cela fonctionne, la configuration suivante est nécessaire :


7/10/2012