Configuration d'une base de données Oracle pour prendre en charge des colonnes XML ArcSDE
Les colonnes XML ArcSDE utilisent les composants Oracle Text, qui sont installés par défaut avec Oracle. Pour les utiliser, vous devez accorder les privilèges correspondants aux utilisateurs. Une fois que cela est fait, la base de données et ArcSDE doivent être configurés correctement et mis à jour pour optimiser les résultats et les performances des recherches, en particulier pour les recherches dans des colonnes XML écrites dans des langues autres que l'anglais si vous utilisez des documents XML qui stockent des langues autres que l'anglais.
Il est également important de gérer correctement les index de texte pour maintenir de bonnes performances. ArcSDE pour Oracle inclut deux scripts qui permettent de configurer votre base de données afin d'y stocker des données XML. Reportez-vous à la rubrique Scripts pour optimiser une instance Oracle pour le stockage XML ArcSDE pour plus d'informations sur ces scripts.
Si vous envisagez d'interroger une table à l'aide du contenu d'une colonne XML, vérifiez ce qui suit pour la base de données :
- le lexer par défaut utilisé pour l'analyse linguistique avec les index de texte,
- les paramètres par défaut de la liste de mots,
- les objets de texte fournis par le système,
- la liste d'exclusion par défaut pour la base de données.
Si les paramètres par défaut actuels ne correspondent pas à la langue de vos documents XML et que les préférences de texte personnalisées existantes ne sont pas disponibles, vous devez créer des préférences de texte personnalisées pour pouvoir indexer et effectuer correctement une recherche dans vos documents XML à l'aide du paramètre ArcSDE DBTUNE XML_IDX_INDEX_TEXT avant de créer votre colonne XML.
Vous pouvez également personnaliser les paramètres utilisés pour indexer les documents XML. Cette opération nécessite la création de préférences appropriées dans Oracle et le référencement de ces paramètres avec le paramètre DBTUNE ArcSDE XML_IDX_INDEX_TEXT. Utilisez ensuite le mot-clé DBTUNE contenant le paramètre XML_IDX_INDEX_TEXT personnalisé lors de la création d'une colonne XML. Pour un service de métadonnées ArcIMS, vous pouvez référencer un paramètre DBTUNE dans son fichier de configuration ArcXML.
Modifiez le mode d'indexation de la ponctuation avec précaution. La même préférence est utilisée lors de l'indexation de l'ensemble du texte des documents XML. Les valeurs d'un élément XML peuvent utiliser la ponctuation différemment des autres.
-
Connectez-vous à SQL*Plus en tant qu'utilisateur ctxsys pour accorder des privilèges à l'utilisateur devant posséder la colonne XML. Pour cela, exécutez la commande suivante :
GRANT EXECUTE ON ctx_ddl TO <mdUsername>;
<mdUsername> est l'utilisateur qui possèdera la colonne XML. Pour les services de métadonnées ArcIMS, <mdUsername> est l'utilisateur spécifié dans le fichier de configuration du service ArcXML.
-
Interrogez la vue CTX_PARAMETERS pour déterminer les paramètres par défaut actuels de votre installation Oracle.
SELECT * FROM ctx_parameters;
-
Interrogez la vue CTX_PREFERENCES pour connaître les préférences disponibles. Vous pouvez ainsi trouver le lexer utilisé par la préférence CTXSYS.DEFAULT_LEXER, par exemple. Vous trouverez également les préférences personnalisées créées par d'autres utilisateurs.
SELECT * FROM ctx_preferences;
-
Interrogez la vue CTX_PREFERENCE_VALUES pour vérifier que les préférences définies par le système sont paramétrées correctement pour la langue des documents XML.
SELECT * FROM ctx_preference_values;
- Comparez les résultats des requêtes ci-dessus avec les paramètres autorisés pour les lexers, les listes de mots et les autres objets texte documentés dans le Guide de référence relatif à Oracle Text pour la version de la base de données.
- Si les paramètres par défaut ne sont pas corrects pour la langue des documents XML et si les préférences de texte personnalisées existantes ne sont pas disponibles, créez des préférences de texte personnalisées pour indexer correctement les documents XML et y effectuer des recherches.
- Ajoutez les préférences de texte personnalisées au paramètre DBTUNE XML_IDX_INDEX_TEXT avant de créer la colonne XML.
-
Vérifiez les objets de texte fournis par le système avant de créer des préférences personnalisées pour vous assurer que le lexer à utiliser est disponible avec l'installation d'Oracle.
SELECT * FROM ctx_objects;
-
Vous pouvez créer une préférence de texte personnalisée référençant un lexer retourné à l'étape précédente.
Par exemple, si le lexer WORLD_LEXER figure dans la liste d'objets ctx (ctx_objects), vous pouvez créer une préférence de texte personnalisée référençant ce lexer comme suit :
EXEC ctx_ddl.create_preference('WORLDLEXER', 'WORLD_LEXER');
-
Définissez le paramètre DBTUNE XML_IDX_INDEX_TEXT de sorte qu'il utilise la préférence. Si vous n'avez pas encore créé la géodatabase, vous pouvez modifier le fichier dbtune.sde pour qu'il comporte les paramètres voulus. Reportez-vous à la rubrique Modification du fichier dbtune avant de créer la géodatabase pour en savoir plus. Si la géodatabase existe déjà, modifiez la valeur du paramètre XML_IDX_INDEX_TEXT sous le mot-clé DEFAULTS à l'aide de la commande sdedbtune. Reportez-vous à la rubrique Modification du contenu de la table DBTUNE après sa création pour en savoir plus.
Faites toujours précéder le nom de préférence du nom de l'utilisateur qui a créé la préférence. Par exemple, si l'administrateur de géodatabase s'est connecté en tant qu'utilisateur sde lors de la création de la préférence, le paramètre XML_IDX_INDEX_TEXT doit définir la préférence comme suit :
LEXER sde.WORLDLEXER
-
Assurez-vous que les préférences relatives à la liste de mots et à la liste d'exclusion sont définies correctement pour votre langue. Si ce n'est pas le cas, effectuez l'une des opérations suivantes :
- Utilisez l'une des valeurs correspondant à votre langue pour ces paramètres comme il est indiqué dans le Guide de référence relatif à Oracle Text.
- Si le paramètre dont vous avez besoin n'est pas défini dans le Guide de référence relatif à Oracle Text, créez une préférence personnalisée et ajoutez-la à la valeur du paramètre XML_IDX_INDEX_TEXT dans la table DBTUNE.
Si les paramètres par défaut actuels ne correspondent pas à la langue de vos documents XML et que les préférences de texte personnalisées existantes ne sont pas disponibles, vous devez créer des préférences de texte personnalisées pour pouvoir indexer et effectuer correctement une recherche dans vos documents XML à l'aide du paramètre ArcSDE DBTUNE XML_IDX_INDEX_TEXT avant de créer votre colonne XML.