Oracle-Datentyp DATE in Datentyp TIMESTAMP konvertieren (Upgrade von Version 4.5.1)
Wenn Sie ein Upgrade für Oracle-basierte Content Engine-Daten als Teil eines Upgrades für FileNet P8 von Version 4.5.1 durchführen, konvertiert das automatische Upgrade die Content Engine-Eigenschaftsspalten 'DateTime' des Oracle-Datentyps DATE in den Oracle-Datentyp TIMESTAMP. Bei einem funktionsbasierten Index mit einbezogenem Datentyp DATE kann diese Konvertierung während des automatischen Upgrades allerdings nicht vorgenommen werden. In diesem Fall müssen Sie den Index löschen, den Datentyp DATE manuell in den Datentyp TIMESTAMP konvertieren und anschließend den Originalindex in der Oracle-Datenbank neu erstellen.
Informationen zu diesem Vorgang
Versionen von Oracle-basierten Content Engine-Daten vor 5.0.0 verwenden die Oracle-Eigenschaft DATE für die Content Engine-Eigenschaft DateTime. Ab Version 5.0.0 wird die Oracle-Eigenschaft DATE durch die Eigenschaft TIMESTAMP ersetzt.
Die über die Eigenschaft DATE definierten Tabellenspalten werden im Rahmen des automatischen Upgrades von Content Engine-Daten automatisch in die Eigenschaft TIMESTAMP konvertiert, auch wenn ein Index für die Eigenschaft DATE vorhanden ist. Diese Konvertierung schlägt allerdings für funktionsbasierte Indizes fehl, wie z. B. beim Schlüsselwort DESC (absteigend), das die Eigenschaft DATE verwendet.
Da eine Auflösung dieses Konvertierungsfehlers innerhalb des automatischen Upgrades nicht durchführbar ist, können Spalten des Typs DATE mit funktionsbasierten Indizes nur manuell in Spalten des Typs TIMESTAMP konvertiert werden.
Trifft eine der folgenden Bedingungen zu, muss Ihr Datenbankadministrator diese Prozedur manuell ausführen:
- Sie verwenden die Protokollierungsfunktion von Content Engine und die Tabelle 'Event' umfasst mehr als 500.000 Zeilen.
Wenn Sie die manuelle Konvertierung nicht ausführen, funktioniert der Systemindex I_EVENT48 für die Spalte create_date in der Tabelle 'Event' zwar weiterhin, Ihre Konfiguration wird aber erst nach dem Konvertieren der Spalte wieder unterstützt.
Das folgende Beispiel zeigt eine Nachricht aus dem P8-Systemfehlerprotokoll, die auf einen Überlauf der Ereignistabelle hinweist:
Obwohl sich die Fehlernachricht sowohl auf I_EVENT48 als auch auf I_EVENT83 bezieht, muss nur I_EVENT48 gelöscht und erneut erstellt werden. Die entsprechende Vorgehensweise wird im Folgenden beschrieben.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.
- Sie haben eine kundendefinierte Eigenschaft DATE, die Teil eines funktionsbasierten Index ist.
Wenn Sie die manuelle Konvertierung nicht ausführen, weist das System, für das das Upgrade durchgeführt wurde, den vollen Funktionsumfang auf. Datumseigenschaften und Abfragen funktionieren wie vorher, allerdings mit einer Ausnahme: Ein funktionsbasierter, kundendefinierter Index, bei dem die Datumsspalte der erste Schlüssel ist (z. B. ein vom Datenbankadministrator erstellter Index für uxy_shipmentDate DESC), kann nicht verwendet werden und eine Indexsuchfunktion in einem Abfrageplan ist erst wieder enthalten, wenn Sie die kundendefinierte Eigenschaft konvertiert haben.
Durch eine Prüfung der P8-Systemfehlerprotokolle auf Fehler bei der Datentypkonvertierung können Sie feststellen, ob eine manuelle Konvertierung erforderlich ist. Unabhängig von den Bedingungen ist es ein bewährtes Verfahren, die Protokolle nach Abschluss des automatischen Updates zu prüfen. Das folgende Beispiel zeigt eine Nachricht aus dem P8-Systemfehlerprotokoll, die darauf hinweist, dass eine manuelle Konvertierung erforderlich ist:
"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 re-create index."
Vorgehensweise
So konvertieren Sie den Datentyp DATE manuell in den Datentyp TIMESTAMP: