SQL アップグレード・スクリプトに対する変更の例
以下の例は、追加オーディエンス・レベルをサポートするために aci_runtab_upgrd SQL アップグレード・スクリプトに対して加える必要のある変更を示しています。
既存の Interact 設計環境には、Household という名前の追加オーディエンス・レベルが含まれています。 このオーディエンス・レベルをサポートするために、Interact ランタイム環境データベースに HH_CHStaging および HH_RHStaging という名前のテーブルが含まれています。
アップグレード・スクリプトに対する必要な変更
Customer オーディエンス・レベルのレスポンス履歴および処理サイズを更新する SQL アップグレード・スクリプト内のコードを見つけ、Household オーディエンス・レベルに複製します。 これらのステートメント内のテーブル名を、Household オーディエンス・レベルで適切な名前に変更します。
UACI_RHStaging テーブルの SeqNum 列のデータ型の変更をサポートするように SQL を改訂する必要もあります。 SeqNum の値は、すべてのレスポンス履歴ステージング・テーブル全体の連続番号です。 次に使用される値は、UACI_IdsByType テーブルの NextID 列によってトラッキングされます。 TypeID2 です。 例えば、Customer、Household、Account という 3 つのオーディエンス・レベルがあります。 Customer レスポンス履歴ステージング・テーブルで最も高い SeqNum50 です。 Household レスポンス履歴ステージング・テーブルで最も高い SeqNum75 です。 Account レスポンス履歴ステージング・テーブルで最も高い SeqNum100 です。 したがって、SQL を変更して UACI_IdsByTypeTypeID = 2NextID101 に設定する必要があります。
以下のサンプル SQL ステートメントは、Household オーディエンス・レベルが含まれる、SQL Server データベースの aci_runtab_upgrd_sqlsvr.sql スクリプトで必要な追加を示しています。 Household オーディエンス・レベルをサポートするように変更されているテキストは太字で示されています。
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
DB2® および Oracle データベースの場合、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 );
オーディエンスが複数存在する場合、以下の例に示されるオーディエンス・レベルごとに aci_usrtab_upgrd SQL スクリプトにセクションを追加する必要があります。 以下の例は、変更後の追加のみを示しています。
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