Conversión del tipo de datos DATE de Oracle al tipo de datos TIMESTAMP (actualización de la versión 4.5.1)
Si está actualizando datos de Content Engine basados en Oracle como parte de una actualización de FileNet P8 de la versión 4.5.1, la actualización automática convierte las columnas de propiedad DateTime de Content Engine del tipo de datos DATE de Oracle al tipo de datos TIMESTAMP de Oracle. Sin embargo, si existe un índice basado en función que implica al tipo de datos DATE, la actualización automática no podrá realizar esta conversión. En este caso, debe descartar el índice, convertir manualmente el tipo de datos DATE al tipo de datos TIMESTAMP y, a continuación, volver a crear el índice original en la base de datos Oracle.
Acerca de esta tarea
Las versiones de datos de Content Engine basadas en Oracle anteriores a la versión 5.0.0 utilizan la propiedad DATE de Oracle para la propiedad DateTime de Content Engine. A partir de la versión 5.0.0, la propiedad TIMESTAMP de Oracle sustituye a la propiedad DATE.
Como parte de la actualización automática de los datos de Content Engine, las columnas de tabla definidas por la propiedad DATE se convierten automáticamente a la propiedad TIMESTAMP, aunque exista un índice en la propiedad DATE. Sin embargo, la conversión falla en índices basados en función, como por ejemplo la palabra clave descendente (DESC), que implican a la propiedad DATE.
Dado que no es factible resolver esta anomalía de conversión dentro de la infraestructura de actualización automática, sólo un procedimiento manual puede convertir columnas DATE con índices basados en función a columnas TIMESTAMP.
Si se cumple alguna de las condiciones siguientes, el administrador de base de datos deberá realizar el procedimiento manual:
- Utiliza la característica de auditoría de
Content Engine y la tabla de sucesos contiene más de
500.000 filas.
Si no realiza el procedimiento manual, el índice del sistema I_EVENT48 de la columna create_date de la tabla de sucesos seguirá funcionando; sin embargo, la configuración quedará sin soporte hasta que convierta manualmente la columna.
El ejemplo siguiente muestra un mensaje del registro de errores del sistema P8 que indica el desbordamiento de la tabla Suceso:
Aunque el mensaje de error hace referencia tanto a I_EVENT48 como a I_EVENT83, sólo se debe descartar y volver a crear I_EVENT48; a continuación se proporciona un procedimiento.2012-05-31T01:49:43.005Z 7F227F22 ENG FNRCE0000E - ERROR ObjectStoreUpgrade(My451ObjectStore) DBA debe eliminar manualmente los índices I_Event48 y I_Event83, convertir la columna DATE en TIMESTAMP y volver a crearlos en la tabla de sucesos.
- Existe una propiedad DATE definida por el cliente que forma parte de un índice
basado en función.
Si no realiza el procedimiento manual, el sistema actualizado será plenamente funcional. Las propiedades Date y las consultas funcionarán igual que antes, con una excepción: no podrá utilizarse un índice basado en función y definido por el cliente para el que la columna Date sea la primera clave (por ejemplo, un índice creado por el administrador de base de datos en DESC uxy_shipmentDate), y no se conservará una búsqueda de índice en un plan de consultas hasta que convierta manualmente la propiedad definida por el cliente.
Una comprobación del registro de errores del sistema P8 con respecto a los errores de conversión de tipo de datos confirmará la necesidad de realizar el procedimiento manual. En todas las condiciones, es aconsejable revisar el registro una vez finalizada la actualización automática. El ejemplo siguiente muestra un mensaje del registro de errores del sistema P8 que indica la necesidad de realizar el procedimiento manual:
"2010-07-13T00:29:43.787Z 68416841 ENG
FNRCE0000E - ERROR ObjectStoreUpgrade
(DaphneStore) La conversión de columna Date a Timestamp ha fallado para la columna
modify_date en
la tabla DocVersion. La razón más probable es el error de
Oracle 30556: el índice funcional está
definido en la columna que debe modificarse, en cuyo caso el administrador de base de
datos debe eliminar el índice manualmente,
convertir la columna de fecha en indicación de fecha y hora y volver a crear el índice."
Procedimiento
Para convertir manualmente el tipo de datos DATE al tipo de datos TIMESTAMP: