Configurar una base de datos de Oracle para admitir columnas XML de ArcSDE
Las columnas XML de ArcSDE utilizan los componentes de texto de Oracle que están instalados en Oracle por defecto. Para utilizarlos, debe otorgar privilegios a los usuarios para estos componentes. En cuanto lo haya hecho, la base de datos y ArcSDE deben configurarse y mantenerse de forma adecuada para optimizar los resultados de búsqueda y el rendimiento, especialmente para buscar columnas XML escritas en lenguajes distintos al inglés si está utilizando documentos XML que almacenan otros lenguajes que no son el inglés.
Si tiene previsto consultar una tabla utilizando el contenido de una columna XML, compruebe la siguiente información de la base de datos:
- El lexer por defecto utilizado para el análisis lingüístico con índices de texto.
- Los ajustes de la lista de palabras por defecto
- Los objetos de texto suministrados por el sistema
- La lista de paradas por defecto de la base de datos
Si los ajustes predeterminados actuales no son correctos para el lenguaje de los documentos XML y no se dispone de preferencias de texto personalizado existentes, deberá crear preferencias de texto personalizado para indexar y buscar correctamente los documentos XML y referenciar dichas preferencias utilizando el XML_IDX_INDEX_TEXT del parámetro DBTUNE de ArcSDE antes de crear la columna XML.
También puede personalizar los ajustes que se utilizan para indexar los documentos XML. Esto requiere la creación de preferencias adecuadas en Oracle y después la referenciación de esos parámetros con el parámetro XML_IDX_INDEX_TEXT DBTUNE de ArcSDE. A continuación, utilice la palabra clave DBTUNE que contiene el parámetro XML_IDX_INDEX_TEXT personalizado al crear una columna XML.
Sea cuidadoso al cambiar la manera en que se indexa la puntuación. Se utilizará la misma preferencia al indexar todo el texto en los documentos XML. Los valores en un elemento XML pueden utilizar la puntuación de un modo diferente que en otros.
-
Inicie la sesión en SQL*Plus como el usuario ctxsys para otorgar privilegios al usuario que será propietario de la columna XML emitiendo el comando siguiente:
GRANT EXECUTE ON ctx_ddl TO <mdUsername>;
<mdUsername> es el usuario que será propietario de la columna XML.
-
Consulte la vista ctx_parameters para determinar cuáles son los ajustes por defecto actuales para su instalación de Oracle.
SELECT * FROM ctx_parameters;
-
Consulte la vista CTX_PREFERENCES para conocer las preferencias disponibles. De esta forma podrá, por ejemplo, conocer qué lexer está siendo utilizado por la preferencia CTXSYS.DEFAULT_LEXER. También se describe cualquier otra preferencia creada por otros usuarios.
SELECT * FROM ctx_preferences;
-
Consulte la vista ctx_preferences_values para garantizar que las preferencias definidas por el sistema están correctamente establecidas para el lenguajes de los documentos XML.
SELECT * FROM ctx_preference_values;
- Compare los resultados de las consultas anteriores con los ajustes permitidos para los lexers, las listas de palabras y otros objetos de texto documentados en la Guía de Referencia de Texto de Oracle para su versión de la base de datos.
- Si los ajustes predeterminados actuales son correctos para el lenguaje de los documentos XML y no se dispone de preferencias de texto personalizadas existentes, deberá crear preferencias de texto personalizadas para indexar y buscar correctamente los documentos XML.
- Añada las preferencias de texto personalizadas al parámetro DBTUNE XML_IDX_INDEX_TEXT antes de crear la columna XML.
-
Revise los objetos de texto suministrados por el sistema antes de crear preferencias personalizadas para asegurarse de que el lexer que desea utilizar está disponible con la instalación de Oracle.
SELECT * FROM ctx_objects;
-
Puede crear una referenciación de preferencia de texto personalizada que se base en un lexer que se devolvió del paso anterior.
Por ejemplo, si se devolvió WORLD_LEXER en la lista de ctx_objects, puede crear una referenciación de preferencia de texto personalizada que se base en este lexer tal y como se describe a continuación:
EXEC ctx_ddl.create_preference('WORLDLEXER', 'WORLD_LEXER');
-
Establezca el parámetro XML_IDX_INDEX_TEXT DBTUNE para utilizar la preferencia. Altere el valor del parámetro XML_IDX_INDEX_TEXT bajo la palabra clave DEFAULTS utilizando el comando sdedbtune. Para obtener detalles, consulte Alterar el contenido de la tabla DBTUNE.
Siempre preceda el nombre de preferencia con el usuario que creó la preferencia. Por ejemplo, si el administrador de la geodatabase ha iniciado sesión como el usuario sde, cuando se creó la preferencia, el parámetro XML_IDX_INDEX_TEXT deberá establecer la preferencia de la siguiente manera:
LEXER sde.WORLDLEXER
-
Compruebe que las preferencias de la lista de palabras y la lista de paradas estén correctamente establecidos para su lenguaje. Si no lo están, puede hacer lo siguiente:
- Utilice uno de los valores de estos ajustes para su lenguajes según se define en la Guía de Referencia de Texto de Oracle.
- Si el ajuste que necesita no está definido en la Guía de Referencia de Texto de Oracle, cree una preferencia personalizada y añádala al valor del parámetro XML_IDX_INDEX_TEXT de la tabla DBTUNE.
Si los ajustes predeterminados actuales son correctos para el lenguaje de los documentos XML y no se dispone de preferencias de texto personalizado existentes, deberá crear preferencias de texto personalizado para indexar y buscar correctamente los documentos XML y referenciar dichas preferencias utilizando el parámetro DBTUNE XML_IDX_INDEX_TEXT de ArcSDE antes de crear la columna XML.