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. Vous devez copier le fichier st_geometry.dll (Windows) dans le dossier lib du répertoire d'installation de PostgreSQL. Pour les serveurs Linux, copiez le fichier st_geometry.so (Linux) dans le répertoire /usr/lib/pgsql sur le serveur PostgreSQL. Vous trouverez ces deux fichiers dans le dossier DatabaseSupport d'installation du client ArcGIS.

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 :

Thèmes connexes

9/12/2013