Révision et modification du script de mise à niveau SQL
Si l'environnement d'exécution d'Interact inclut des personnalisations dans les tables système d'exécution qui ont modifié le langage de définition de données (DDL) par défaut fourni avec Interact, vous devez modifier le script SQL de mise à niveau par défaut de la base de données afin qu'il corresponde à ces personnalisations.
Les personnalisations les plus courantes sont des modifications concernant la prise en charge de plusieurs audiences ou l'utilisation des vues des tables. Vous pouvez vérifier les dictionnaires de données des nouvelles versions des produits IBM® afin de vous assurer que les tailles de colonne sont correctement mappées et que les contraintes de clé externe de produits supplémentaires ne génèrent pas de conflit.
Les scripts SQL de mise à niveau aci_runtab_upgrd et aci_usrtab_upgrd sont ceux qui nécessitent le plus souvent une révision.
*
Procédez comme suit pour réviser et modifier le script de mise à niveau SQL :
1.
Localisez le script de mise à niveau correspondant au type de base de données. Les scripts sont installés dans le répertoire /ddl/Upgrades ou /ddl/Upgrades/Unicode sous le répertoire d'installation d'Interact après l'exécution du programme d'installation d'IBM® EMM en mode mise à niveau.
2.
Vérifiez que le schéma de base de données correspond au langage de définition de données (Data Definition Language - DDL) inclus avec Interact. Si tel n'est pas le cas, modifiez le script du type de base de données afin qu'il corresponde à votre environnement.
L'exemple suivant montre les modifications requises pour le script SQL de mise à niveau aci__runtab upgrd pour prendre en charge le niveau d'audience Household :
L'environnement de phase de conception d'Interact existant contient un niveau d'audience supplémentaire appelé Household. Pour prendre en charge ce niveau d'audience, la base de données de l'environnement d'exécution d'Interact contient des tables nommées HH_CHStaging et HH_RHStaging.
Changements requis à apporter au script de mise à niveau
a.
b.
L'exemple suivant d'instructions SQL illustre les ajouts devant être effectués dans le script aci_runtab_upgrd_sqlsvr.sql pour une base de données SQL Server contenant le niveau d'audience Foyer. Le texte ajouté pour assurer la prise en charge du référentiel Foyer est indiqué en gras :
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
Pour les bases de données DB2® et Oracle, l'instruction suivante permet d'insérer des valeurs dans la table UACI_IdsByType :
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 );
Dans le cas d'audiences multiples, vous devez ajouter les sections suivantes au script SQL aci_usrtab_upgrd pour chaque niveau d'audience :
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