Début de modificationFileNet P8 Content Engine, FileNet P8 Content Search Engine, Version 5.0.+   Base de données :  Oracle          

Conversion du type de données Oracle DATE au type TIMESTAMP

Si vos données Content Engine mises à niveau sont des données Oracle, la fonction de mise à niveau automatique vers la version 5.0.0 convertit les colonnes de propriété DateTime de Content Engine du type de données Oracle DATE au type de données Oracle TIMESTAMP. Cependant, la fonction de mise à niveau n'est pas capable de faire cette conversion dans un index de fonction contenant des données de type DATE. Dans ce cas, l'index doit être supprimé, les données de type DATE doivent être converties manuellement au type TIMESTAMP, et l'index doit être recréé dans la base de données Oracle.

Les données Oracle dans les versions Content Engine antérieures à la version 5.0.0 utilisent la propriété Oracle DATE pour la propriété Content Engine DateTime. A partir de la version 5.0.0, la propriété Oracle TIMESTAMP remplace la propriété DATE.

Pendant la mise à niveau des données Content Engine vers la version 5.0.0, la propriété DATE qui définit les colonnes de table est automatiquement convertie en propriété TIMESTAMP, même si la propriété DATE est indexée. Cependant, la conversion échoue dans les index de fonction, incluant par exemple le mot-clé DESC (décroissant), impliquant la propriété DATE.

Il est impossible de résoudre de problème de conversion dans le cadre de la fonction de mise à niveau automatique, et seule une procédure manuelle peut être utilisée pour convertir les colonnes DATE des index de fonction en colonnes TIMESTAMP.

Si l'une des conditions ci-dessous est vraie, l'administrateur de base de données doit effectuer la procédure manuelle :

Une vérification des erreurs de conversion des types de données dans les journaux d'erreur système P8 confirmera la nécessité d'effectuer la procédure manuelle. Dans tous les cas, il est recommandé de vérifier les journaux après la mise à niveau automatique. L'exemple ci-dessous représente un message du journal des erreurs système P8 indiquant la nécessité d'effectuer la procédure manuelle :

"2010-07-13T00:29:43.787Z 68416841 ENG  FNRCE0000E - ERROR ObjectStoreUpgrade
(DaphneStore) Date to Timestamp column conversion failed for column modify_date on 
table DocVersion. The most likely reason is oracle error 30556: functional index is 
defined on the column to be modified, in which case DBA should manually drop index, 
convert date column to timestamp and recreate index."

Pour convertir manuellement le type de données DATE au type TIMESTAMP :

  1. Si cela n'est pas encore fait, supprimez le paramétrage de V8Compatibility dans les arguments JVM utilisé comme solution de contournement. Si votre système utilise Oracle 11g et vous avez dû revenir au pilote JDBC d'Oracle 10g pour le contournement, annulez également la procédure de rétromigration du pilote JDBC. Consultez les instructions de la notice technique Enabling Oracle Date Index Use in the FileNet Content Engine.
  2. Pour convertir le type de données DATE au type TIMESTAMP dans la table Event, exécutez les commandes SQL suivantes. Notez que la création d'un index peut être longue si la table des événements contient des millions d'entrées.
    DROP INDEX I_Event48
    ALTER TABLE Event MODIFY create_date TIMESTAMP
    CREATE INDEX I_Event48 ON Event (source_object_id, create_date DESC) 
  3. Pour convertir des colonnes de table DATE définies par l'utilisateur au type TIMESTAMP, exécutez les commandes SQL suivantes pour chaque index de fonction. Notez que la création d'un index peut être longue si la table comportant la colonne DATE contient des millions d'entrées.
    DROP INDEX <nom d'index>
    ALTER TABLE <nom de table> MODIFY <nom de colonne> TIMESTAMP
    CREATE INDEX <nom d'index> ON <nom de table>(noms de colonne> <modificateurs>)


Commentaires

Dernière mise à jour : Novembre 2010


© Copyright IBM Corp. 2010.
Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)
Fin de modification