Revisión y modificación del script de actualización de SQL
Si el entorno de ejecución Interact incluye personalizaciones a las tablas del sistema de ejecución en las que se ha modificado el lenguaje de definición de datos (DDL) que se incluía con Interact, deberá modificar el script de actualización SQL predeterminado de la base de datos para que se corresponda con estas personalizaciones.
Entre las personalizaciones más comunes se incluyen cambios para admitir diversos niveles de audiencia o para utilizar vistas de tablas. Puede revisar los diccionarios de datos para las nuevas versiones de los productos de IBM® para confirmar que los tamaños de columna se correlacionan correctamente y que las restricciones de claves foráneas de los nuevos productos no entran en conflicto.
Los scripts de actualización SQL que es más probable que tengan que ser revisados son aci_runtab_upgrd y aci_usrtab_upgrd.
*
Complete los pasos siguientes para revisar y modificar el script de actualización SQL:
1.
Localice el script de actualización que corresponda al tipo de base de datos de que disponga. Los scripts se instalan en el directorio /ddl/Upgrades o /ddl/Upgrades/Unicode, bajo el directorio de instalación de Interact tras ejecutar el instalador de IBM® EMM en modo de actualización.
2.
Asegúrese de que el esquema de base de datos se corresponda con el lenguaje de definición de datos (DDL) que se incluye con Interact. Si el esquema de base de datos no se corresponde con el DDL del script de actualización, edite el script correspondiente al tipo de su base de datos para adecuarlo a su entorno.
En el ejemplo siguiente se muestran modificaciones necesarias al script de actualización SQL aci_runtab_upgrd para dar soporte al nivel de audiencia Unidad familiar:
Su entorno de diseño existente de Interact contiene un nivel de audiencia adicional denominado Unidad familiar. Para dar soporte al nivel de audiencia de Unidad familiar, la base de datos del entorno de ejecución de Interact contiene tablas denominadas HH_CHStaging y HH_RHStaging.
Cambios obligatorios en el script de actualización:
a.
b.
Las siguientes sentencias SQL de ejemplo muestran las adiciones necesarias al script aci_runtab_upgrd_sqlsvr.sql para una base de datos de SQL Server que contenga el nivel de audiencia de Unidad familiar. El texto que se ha añadido para dar soporte al nivel de audiencia de Unidad familiar está en negrita:
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
Para bases de datos DB2® y Oracle, se utilizaría la sentencia siguiente para insertar valores en la tabla 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 );
Si tiene diversas audiencias, deberá añadir las secciones siguientes en el script SQL aci_usrtab_upgrd para cada nivel de audiencia:
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