Dans Oracle, les fonctions SQL ST_Geometry et ST_Raster utilisent des bibliothèques partagées accessibles via l'agent de procédure externe Oracle, ou extproc. Oracle doit pouvoir accéder aux fichiers de bibliothèque physique pour que vous puissiez effectuer l'une des actions suivantes :
- Exécutez les fonctions ST_Geometry ou ST_Raster SQL à partir de clients SQL.
- Accédez aux colonnes ArcSDE XML dans les vues système des géodatabases GDB_ITEMS_VW et GDB_ITEMRELATIONSHIPS_VW.
- Définissez une couche de requête dans ArcMap ou ArcGIS Pro qui exécute les fonctions SQL sur les colonnes ST_Geometry.
- Identifiez des entités dans les vues de bases de données d'ArcMap ou ArcGIS Pro.
- Enregistrez les tables contenant les colonnes ST_Raster comme étant versionnées.
- Utilisez un client ArcGIS pour supprimer une ligne comprenant une colonne ST_Raster.
Vous devez configurer la structure de procédure externe Oracle pour appeler les bibliothèques afin d'effectuer ces tâches.
Dans la majorité des cas, vous avez installé le type ST_Raster afin de pouvoir y accéder avec SQL. C'est la raison pour laquelle les instructions de configuration du fichier extproc Oracle pour son utilisation avec ST_Raster sont comprises dans la rubrique relative à l'installation de ST_Raster. Cette rubrique concerne la configuration d'extproc pour ST_Geometry.
Avant de configurer le fichier extproc Oracle, procédez de la manière suivante :
- Si votre instance d'Oracle n'a pas accès aux emplacements d'installation d'ArcGIS for Server ou ArcMap notés ci-dessus, téléchargez les bibliothèques ou copiez-les de la machine cliente ArcGIS dans un répertoire sur la machine Oracle. Veillez à copier la bibliothèque correspondant au système d'exploitation Oracle.
- Les outils de géotraitement Créer le type spatial, Créer la géodatabase d'entreprise et Activer une géodatabase d'entreprise définissent un chemin par défaut pour la bibliothèque ST_SHAPELIB. Connectez-vous à l'instance d'Oracle en tant qu'utilisateur SDE à partir d'un client SQL et exécutez la commande SQL suivante pour voir le chemin défini pour la bibliothèque ST_SHAPELIB :
SELECT file_spec FROM user_libraries WHERE library_name = 'ST_SHAPELIB';
Si le chemin retourné par la commande ne correspond pas à l'emplacement de la bibliothèque ST_Geometry, vous devez recréer la bibliothèque après avoir configuré le fichier extproc.
Configurez le fichier extproc.ora Oracle de sorte qu'il pointe sur l'emplacement du fichier de bibliothèque ST_Geometry.
- Faites une copie de sauvegarde du fichier extproc.ora sur le serveur Oracle.
- Ouvrez le fichier extproc.ora et modifiez-le pour qu'il désigne l'emplacement de la bibliothèque st_shapelib.dll (Windows) ou libst_shapelib.so (Linux ou UNIX).
Dans cet exemple, aucun ArcGIS n'est installé sur le serveur Windows Oracle. Par conséquent, la bibliothèque st_shapelib.dll a été copiée dans un répertoire nommé mylibraries sur la machine Oracle. La ligne suivante est ajoutée à extrproc.ora pour désigner la bibliothèque ST_Geometry dans ce répertoire :
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll
Si vous utilisez les bibliothèques ST_Geometry et ST_Raster, vous pouvez insérer les entrées correspondantes sur une seule ligne :
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll
Dans cet exemple, sur un serveur Linux ou UNIX, la ligne suivante est ajoutée pour désigner la bibliothèque ST_Geometry du répertoire esrilibs de l'utilisateur, créée sur le serveur Oracle pour stocker la bibliothèque :
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so
Si vous utilisez les bibliothèques ST_Geometry et ST_Raster, vous pouvez insérer les entrées correspondantes sur une seule ligne :
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so:/user/esrilibs/libst_raster_ora.so
- Enregistrez et fermez le fichier extproc.ora.
- Si vous avez modifié l'emplacement du fichier de bibliothèque ST_Geometry par rapport à l'emplacement par défaut ou si aucun emplacement n'a été défini, créez ou recréez la bibliothèque ST_SHAPELIB dans la base de données Oracle.
Dans cet exemple, la bibliothèque ST_SHAPELIB est définie comme étant le répertoire mylibraries sur le serveur Oracle Windows où vous avez placé le fichier st_shapelib.dll.
CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\mylibraries\st_shapelib.dll';
- Si vous avez recréé la bibliothèque, recompilez le paquetage sde.st_geometry_shapelib_pkg.
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS;
- Les clients qui doivent accéder aux bibliothèques (y compris les services Web) doivent se reconnecter à la base de données.