Convertendo o tipo de dado DATE do Oracle no tipo de dado TIMESTAMP (atualizando a partir da versão 4.5.1)
Se você estiver fazendo upgrade de dados do Content Engine baseados em Oracle como parte de um upgrade do FileNet P8 a partir da versão 4.5.1, o upgrade automático converterá as colunas da propriedade DateTime do Content Engine do tipo de dado DATE do Oracle no tipo de dado TIMESTAMP do Oracle. Porém, se existir um índice baseado em função que envolva o tipo de dado DATE, então o upgrade automático não conseguirá executar essa conversão. Nesse caso, deve-se descartar o índice, converter manualmente o tipo de dado DATE no tipo de dado TIMESTAMP e, em seguida, recriar o índice original no banco de dados Oracle.
Sobre Esta Tarefa
Versões de dados do Content Engine baseadas em Oracle anteriores à 5.0.0 usam a propriedade DATE do Oracle para a propriedade DateTime do Content Engine. A partir da versão 5.0.0, a propriedade TIMESTAMP do Oracle substitui a propriedade DATE.
Como parte do upgrade automático dos dados do Content Engine, as colunas da tabela definidas pela propriedade DATE serão automaticamente convertidas na propriedade TIMESTAMP, mesmo se houver um índice na propriedade DATE. Porém, a conversão falha em índices baseados em função, como a palavra-chave descendente (DESC), que envolve a propriedade DATE.
Como não é factível resolver essa falha de conversão dentro da estrutura do upgrade automático, somente um procedimento manual pode converter colunas DATE com índices baseados em função em colunas TIMESTAMP.
Se qualquer uma das seguintes condições se aplicar, o administrador do seu banco de dados precisa concluir o procedimento manual:
- Você usa o recurso de auditoria do Content Engine, e o tabela de Eventos contém mais de 500.000 linhas.
Se você não concluir o procedimento manual, I_EVENT48 na coluna create_date na tabela de Eventos continuará a funcionar; porém, a sua configuração não será suportada até que você converta manualmente a coluna.
O exemplo a seguir mostra uma mensagem do log de erro de sistema P8 que indica o estouro da Tabela de eventos:
Embora a mensagem de erro se refira a ambos I_EVENT48 e I_EVENT83, apenas I_EVENT48 deve ser descartado e recriado; um procedimento é fornecido abaixo.2012-05-31T01:49:43.005Z 7F227F22 ENG FNRCE0000E - ERROR ObjectStoreUpgrade(My451ObjectStore) DBA should manually drop indices I_Event48 and I_Event83, convert date column to timestamp and re-create them on Event table.
- Você possui uma propriedade DATE definida pelo cliente que faz parte de um índice baseado em função.
Se você não concluir o procedimento manual, o sistema que passou por upgrade estará totalmente funcional. As propriedades de data funcionam como antes, e as consultas operam como antes, com uma exceção: Um índice definido pelo cliente e baseado em função para qual a coluna Data é a primeira chave (por exemplo, um índice criado por DBA em uxy_shipmentDate DESC) é inutilizável, e uma consulta de índice em um plano de consulta não é retida até que você converta manualmente a propriedade definida pelo cliente.
Uma verificação dos logs de erro de sistema do P8 para os erros de conversão de tipo de dado confirmará a necessidade de concluir o procedimento manual. Em todas as condições, a melhor prática é revisar os logs após a conclusão do upgrade automático. O exemplo a seguir mostra uma mensagem do log de erro de sistema do P8 que indica a necessidade de concluir o procedimento manual:
"2010-07-13T00:29:43.787Z 68416841 ENG FNRCE0000E - ERRO ObjectStoreUpgrade
(DaphneStore) Conversão de coluna Date para Timestamp falhou para a coluna modify_date na
tabela DocVersion. A razão mais provável é o erro 30556 do Oracle: índice funcional está
definido na coluna a se modificada e, nesse caso, o DBA deve descartar manualmente o índice,
convert date column to timestamp and re-create index."
Procedimento
Para converter manualmente o tipo de dado DATE para o tipo de dado TIMESTAMP: