Dans Oracle, les fonctions SQL ST_Geometry utilisent une bibliothèque partagée accessible par Oracle via l’agent de procédure externe Oracle, ou extproc. Oracle doit pouvoir accéder au fichier de bibliothèque physique pour que vous puissiez effectuer l’une des actions suivantes :
- Exécuter les fonctions SQL ST_Geometry à partir de clients SQL.
- Accéder aux colonnes XML dans les vues système des géodatabases GDB_ITEMS_VW et GDB_ITEMRELATIONSHIPS_VW.
- Définir une couche de requête, dans ArcMap ou ArcGIS Pro, qui exécute les fonctions SQL sur les colonnes ST_Geometry.
- Accéder aux couches d’entités groupées dans ArcGIS Pro.
- Publier une couche web qui référence les données de la base de données Oracle.
- Exécutez l’outil de géotraitement Select Layer By Location (Sélectionner une couche par emplacement) avec l’option Intersect (DBMS) (Intersection (SGBD)).
Configurer la structure de procédure externe Oracle pour appeler la bibliothèque ST_Geometry afin d’effectuer ces tâches.
Astuce :
La bibliothèque ST_Geometry est installée avec les clients ArcGIS Server et ArcMap, ou peut être téléchargée à partir de My Esri. Si ArcGIS Server ou ArcMap est installé sur la machine Oracle, vous pouvez configurer votre fichier extproc.ora de sorte qu’il pointe vers l’un des emplacements suivants, ce qui vous permet d’ignorer les deux étapes de préparation ci-après.
- ArcGIS Server sous Windows : <ArcGIS Server installation directory>\ArcGIS\Server\DatabaseSupport\Oracle\Windows64
- ArcGIS Server sous Linux : <ArcGIS Server installation directory>/arcgis/server/DatabaseSupport/oracle/linux64
- ArcMap : <ArcMap installation directory>\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64
Si vous pointez vers l’emplacement d’ArcMap ou d’ArcGIS Server, vous recevez automatiquement les bibliothèques mises à jour lorsque vous installez une nouvelle version d’ArcMap ou d’ArcGIS Server. Si vous placez les bibliothèques dans un emplacement différent, vous devez les mettre à jour manuellement pour pouvoir obtenir les correctifs et améliorations compris dans les nouvelles versions des bibliothèques ArcGIS.
Avant de configurer le fichier extproc Oracle, procédez comme suit :
- Si votre instance Oraclen’a pas accès aux emplacements d’installation ArcGIS Server ou ArcMap notés ci-dessus, téléchargez la bibliothèque ST_Geometry à partir de My Esri ou copiez le fichier de la machine cliente ArcGIS dans un répertoire de la machine Oracle. Veillez à copier la bibliothèque correspondant à votre système d’exploitation Oracle.
Remarque :
La bibliothèque ST_Geometry requiert Microsoft Visual C++ Redistributable Package (x64) lorsqu’elle est déployée sur un serveur Microsoft Windows. Reportez-vous à la rubrique Configuration requise des bases de données Oracle pour connaître la version requise du paquetage. Si ce paquetage n’est pas présent sur le serveur Oracle, téléchargez-le depuis le site de Microsoft et installez-le.
- 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 Oracle en tant qu’utilisateur SDE à partir d’un client SQL, puis exécutez la commande SQL suivante pour connaître le chemin actuellement 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, recréez la bibliothèque après avoir configuré le fichier extproc.
Configurez le fichier extproc.ora Oracle de sorte qu’il pointe vers 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 de sorte 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 client ArcGIS n’est installé sur le serveur Oracle Windows. Par conséquent, la bibliothèque st_shapelib.dll a été copiée dans le répertoire mylibraries de la machine Oracle. La ligne suivante est ajoutée à extproc.ora pour désigner la bibliothèque ST_Geometry dans ce répertoire :
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll
Dans cet exemple, sur un serveur Linux ou UNIX, la ligne suivante est ajoutée pour désigner la bibliothèque ST_Geometry dans le répertoire esrilibs de l’utilisateur, créé sur le serveur Oracle pour stocker la bibliothèque :
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so
- Enregistrez et fermez le fichier extproc.ora.
Il peut être nécessaire de redémarrer l’instance Oracle pour qu’elle tienne compte des changements apportés au fichier extproc.ora.
- Si le fichier de bibliothèque ST_Geometry ne se trouve plus à 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 sur le répertoire mylibraries du serveur Oracle Windows dans lequel le fichier st_shapelib.dll a été placé.
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 à la bibliothèque (y compris les services Web) doivent se reconnecter à la base de données.
Vous avez un commentaire à formuler concernant cette rubrique ?