Início da mudançaFileNet P8 Content Engine, FileNet P8 Content Search Engine, Versão 5.0.+   Banco de Dados:  Oracle          

Convertendo o Tipo de Dado DATE do Oracle em Tipo de Dado TIMESTAMP

Se os seus dados do Content Engine que passaram por upgrade se baseiam em Oracle, o upgrade automático para a versão 5.0.0 converte as colunas de propriedade DateTime do Content Engine do tipo de dado DATE do Oracle em 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, você deve descartar o índice, converter manualmente o tipo de dado DATE para o tipo de dado TIMESTAMP, e então recriar o índice original no banco de dados Oracle.

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 baseados em Oracle para a versão 5.0.0, as colunas da tabela definidas pela propriedade DATE são automaticamente convertidas para a propriedade TIMESTAMP, mesmo se existir 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:

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, 
converter a coluna date para timestamp e recriar o índice."

Para converter manualmente o tipo de dado DATE para o tipo de dado TIMESTAMP:

  1. Se ainda não tiver feito isso, remova a solução alternativa do comutador V8Compatibility JVM. Se o seu sistema usar o Oracle 11g e você tiver de efetuar rollback para o driver JDBC do Oracle 10g para a solução alternativa, também remova a solução alternativa do procedimento de downgrade do driver JDBC. Consulte Ativando o Uso do Índice de Data do Oracle no aviso técnico do FileNet Content Engine para obter instruções.
  2. Para converter o tipo de dado DATE para o tipo de dado TIMESTAMP na tabela de Eventos, execute os seguintes comandos SQL. Note que criar um índice pode levar bastante tempo se houver milhões de entradas na tabela de Eventos.
    DROP INDEX I_Event48
    ALTER TABLE Event MODIFY create_date TIMESTAMP
    CREATE INDEX I_Event48 ON Event (source_object_id, create_date DESC) 
  3. Para converter as colunas da tabela DATE definidas pelo cliente para o tipo de dado TIMESTAMP, execute os seguintes comandos SQL para cada índice baseado em função. Note que criar um índice pode levar bastante tempo se houver milhões de entradas na tabela que contém a coluna DATE.
    DROP INDEX <index name>
    ALTER TABLE <table name> MODIFY <column name> TIMESTAMP
    CREATE INDEX <index name> ON <table name>(column names> <modifiers>)


Feedback

Última atualização: novembro de 2010


© Copyright IBM Corporation 2010.
Este centro de informações foi desenvolvido com a tecnologia Eclipse. (http://www.eclipse.org)
Fim da mudança