Revisando e modificando o script de upgrade SQL
Se seu ambiente de tempo de execução do Interact incluir customizações nas tabelas do sistema de tempo de execução que modificaram a linguagem de definição de dados (DDL) padrão incluída com o Interact, você deverá modificar o script de upgrade SQL padrão para que seu banco de dados corresponda às suas customizações.
As customizações comuns incluem mudanças para suportar diversos níveis de público ou usar visualizações de tabelas. É possível revisar os dicionários de dados para as novas versões de produtos IBM® para confirmar que os tamanhos da coluna sejam corretamente mapeados e que as restrições de chave estrangeira a partir de produto adicionais não entrem em conflito.
O aci_runtab_upgrd e o aci_usrtab_upgrd são os scripts de upgrade SQL que mais requerem revisões.
*
Conclua as etapas a seguir para revisar e modificar o script de upgrade SQL:
1.
Localize o script de upgrade para seu tipo de banco de dados. Os scripts são instalados no diretório /ddl/Upgrades ou /ddl/Upgrades/Unicode na instalação do Interact após executar o instalador do IBM® EMM no modo de upgrade.
2.
Certifique-se de que seu esquema de banco de dados corresponda à linguagem de definição de dados (DDL) incluída no Interact. Se seu esquema do banco de dados não corresponder à DDL no script de upgrade, edite o script para seu tipo de banco de dados para corresponder ao seu ambiente.
O exemplo a seguir mostra as modificações necessárias para o script de upgrade SQL aci_runtab_upgrd suportar o nível de público Doméstico:
Seu ambiente de tempo de design existente do Interact contém um nível de público adicional chamado Doméstico. Para suportar o nível de público Household, seu banco de dados de ambiente de tempo de execução do Interact contém tabelas denominadas HH_CHStaging e HH_RHStaging.
Mudanças necessárias no script de upgrade:
a.
b.
As instruções SQL de exemplo a seguir mostram as inclusões necessárias para o script aci_runtab_upgrd_sqlsvr.sql para um banco de dados SQL Server que contém o nível de público Doméstico. O texto incluído para suportar o nível de público Doméstico está em negrito:
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 bancos de dados DB2® e Oracle, a instrução a seguir é usada para inserção de valores na tabela 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 );
Se tiver diversos públicos, você deve incluir as seções a seguir no script SQL aci_usrtab_upgrd para cada nível de público:
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