Überprüfen und Modifizieren des SQL-Upgradescripts

Wenn in derUnica Interact-Laufzeitumgebung Laufzeitsystemtabellen mit Anpassungen vorhanden sind, mit denen die in Unica Interact enthaltene standardmäßige Data Definition Language (DDL) geändert wurde, müssen Sie das Standard-SQL-Upgradescript für Ihre Datenbank so ändern, dass es den Anpassungen entspricht.

Warum und wann dieser Vorgang ausgeführt wird

Häufige Anpassungen sind etwa Änderungen zur Unterstützung mehrerer Zielgruppenebenen oder zur Verwendung von Tabellenansichten. Sie können anhand der Datenverzeichnisse für die neuen Versionen von Produkten prüfen, ob die Spaltengrößen ordnungsgemäß zugeordnet werden und ob Integritätsbedingungen von Zusatzprodukten Konflikte verursachen.

aci_runtab_upgrd und aci_usrtab_upgrd sind die SQL-Upgradescripts, für die am wahrscheinlichsten Überarbeitungen notwendig sind.

Wichtig: Diese Änderungen müssen Sie vornehmen, bevor Sie das Unica Interact-Upgrade-Tool ausführen.

Führen Sie folgende Schritte aus, um das SQL-Upgradescript zu überprüfen und zu modifizieren:

Prozedur

  1. Suchen Sie das Upgradescript für Ihren Datenbanktyp. Die Scripts werden im Verzeichnis /ddl/Upgrades oder /ddl/Upgrades/Unicode unter Ihrer Unica Interact-Installation installiert, nachdem Sie das Unica-Installationsprogramm im Upgrademodus ausgeführt haben.
  2. Stellen Sie sicher, dass das Datenbankschema der in Unica Interact enthaltenen Data Definition Language (DDL) entspricht. Sollte das Datenbankschema nicht der DDL im Upgradescript entsprechen, bearbeiten Sie das Script so, dass der Datenbanktyp Ihrer Umgebung entspricht.

    Das folgende Beispiel zeigt die für die Unterstützung der Zielgruppenebene "Haushalt" erforderlichen Änderungen des SQL-Upgrade-Scripts aci_runtab_upgrd:

    Die vorhandene Unica Interact-Designzeitumgebung enthält eine zusätzliche Zielgruppenebene mit der Bezeichnung "Haushalt". Zur Unterstützung dieser Zielgruppenebene enthält die Unica Interact-Laufzeitumgebungsdatenbank Tabellen mit den Bezeichnungen HH_CHStaging und HH_RHStaging.

    Erforderliche Änderungen am Upgrade-Script:

    1. Suchen Sie im SQL-Upgrade-Script nach dem Code für die Aktualisierung des Antwortverlaufs und Verfahrensgrößen für die Zielgruppenebene "Kunde" und replizieren Sie ihn für die Zielgruppenebene "Haushalt". Ändern Sie die Tabellennamen in den SQL-Anweisungen in die entsprechenden Namen für die Zielgruppenebene "Haushalt".
    2. Passen Sie das SQL-Script so an, dass es die Änderungen des Datentyps für die Spalte SeqNum in der Tabelle UACI_RHStaging unterstützt. Der Wert für SeqNum ist eine fortlaufende Zahl für alle Staging-Tabellen für den Antwortverlauf. Der nächste verwendete Wert stammt aus der Spalte NextID in der Tabelle UACI_IdsByType mit dem TypeID-Wert 2. Im folgenden Beispiel werden die drei Zielgruppenebenen Kunde, Haushalt und Konto beschrieben. In der Staging-Tabelle für den Antwortverlauf "Kunde" ist der höchste Wert für "SeqNum" 50. In der Staging-Tabelle für den Antwortverlauf "Haushalt" ist der höchste Wert für SeqNum 75. In der Staging-Tabelle für den Antwortverlauf "Konto" ist der höchste Wert für SeqNum 100. Sie müssen daher das SQL-Script so anpassen, dass NextID für TypeID = 2 in UACI_IdsByType auf 101 festgelegt wird.

    Die folgenden SQL-Beispielanweisungen zeigen die erforderlichen Ergänzungen des Scripts aci_runtab_upgrd_sqlsvr.sql für eine SQL Server-Datenbank mit der Zielgruppenebene "Haushalt". Der für die Unterstützung der Zielgruppenebene "Haushalt" hinzugefügte Text wird in diesem Beispiel fett dargestellt:

    ALTER TABLE UACI_CHStaging ADD RTSelectionMethod int NULL
    go
    
    ALTER TABLE UACI_RHStaging ADD RTSelectionMethod int NULL
    go
    
    ALTER TABLE HH_CHStaging ADD RTSelectionMethod int NULL
    go
    
    ALTER TABLE HH_RHStaging ADD RTSelectionMethod int NULL
    go
    
    insert into UACI_IdsByType (TypeID, NextID) (select 2, 
    	IDENT_CURRENT('UACI_RHStaging') + IDENT_CURRENT('HH_RHStaging') 
    	+ IDENT_INCR( 'UACI_RHStaging' ))
    go
    
    select * into UACI_RHStaging_COPY from UACI_RHStaging
    go
    
    select * into HH_RHStaging_COPY from HH_RHStaging
    go
    
    DROP TABLE UACI_RHStaging
    go
    
    CREATE TABLE UACI_RHStaging (
           SeqNum               bigint NOT NULL,
           TreatmentCode        varchar(512) NULL,
           CustomerID           bigint NULL,
           ResponseDate         datetime NULL,
           ResponseType         int NULL,
           ResponseTypeCode     varchar(64) NULL,
           Mark                 bigint NOT NULL
                                              DEFAULT 0,
           UserDefinedFields    char(18) NULL,
    	 RTSelectionMethod    int NULL,
           CONSTRAINT iRHStaging_PK 
                  PRIMARY KEY (SeqNum ASC)
    )
    go
    
    insert into UACI_RHStaging (SeqNum, TreatmentCode, CustomerID, ResponseDate, 
    	ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod) 
      (select SeqNum, TreatmentCode, CustomerID, ResponseDate, ResponseType, 
    		ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from 
    		UACI_RHStaging_COPY)
    go
    
    DROP TABLE UACI_RHStaging_COPY
    go
    
    DROP TABLE HH_RHStaging
    go
    
    CREATE TABLE HH_RHStaging (
           SeqNum               bigint NOT NULL,
           TreatmentCode        varchar(512) NULL,
           HouseholdID           bigint NULL,
           ResponseDate         datetime NULL,
           ResponseType         int NULL,
           ResponseTypeCode     varchar(64) NULL,
           Mark                 bigint NOT NULL
                                              DEFAULT 0,
           UserDefinedFields    char(18) NULL,
    	 RTSelectionMethod    int NULL,
           CONSTRAINT iRHStaging_PK 
                  PRIMARY KEY (SeqNum ASC)
    )
    go
    
    insert into HH_RHStaging (SeqNum, TreatmentCode, HouseHoldID, ResponseDate, 
    	ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod) 
      (select SeqNum, TreatmentCode, HouseHoldID, ResponseDate, ResponseType, 
    		ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from 
    		HH_RHStaging_COPY)
    go
    
    DROP TABLE HH_RHStaging_COPY
    go

    Bei DB2®- und Oracle-Datenbanken wird zum Einfügen der Werte in die Tabelle UACI_IdsByType folgende Anweisung verwendet:

    INSERT into UACI_IdsByType (TypeID, NextID)  
    	(select 2, COALESCE(max(a.seqnum)+1,1)  
    	+ COALESCE(max(b.seqnum)+1,1) 
    	from UACI_RHSTAGING a, ACCT_UACI_RHSTAGING b );

    Bei mehreren Zielgruppen müssen Sie dem SQL-Script aci_usrtab_upgrd für jede Zielgruppenebene die folgenden Abschnitte hinzufügen:

    ALTER TABLE HH_ScoreOverride  ADD 
            OverrideTypeID       int NULL,
            CellCode             varchar(64) NULL,
            Zone                 varchar(64) NULL
    go
    
    ALTER TABLE HH_ScoreOverride  ADD
            Predicate            varchar(4000) NULL,
            FinalScore           float NULL,
            EnableStateID        int NULL
    go
    
    CREATE INDEX iScoreOverride_IX1 ON HH_ScoreOverride
    (
           HouseHoldID                     ASC
    )
    go