SQL アップグレード・スクリプトの検討および変更
Interact に含まれているデフォルトのデータ定義言語 (DDL) を変更したランタイム・システム・テーブルに対するカスタマイズが Interact ランタイム環境に含まれる場合、そのカスタマイズに合わせてデータベースのデフォルトの SQL アップグレード・スクリプトを変更する必要があります。
共通のカスタマイズには、複数のオーディエンス・レベルやテーブルのビューの使用をサポートするための変更が含まれます。 列サイズが正しくマップしていること、および追加の製品の外部キー制約が競合していないことを確認するために、新規バージョンの IBM® 製品について、データ・ディクショナリーを確認できます。
SQL アップグレード・スクリプトである aci_runtab_upgrd および aci_usrtab_upgrd については、ほとんどの場合、改訂が必要です。
*
Interact アップグレード・ツールを実行する前に、これらの変更を完了しておく必要があります。
以下のステップを実行し、SQL アップグレード・スクリプトを検討して変更します。
1.
データベース・タイプのアップグレード・スクリプトを見つけます。 スクリプトは、アップグレード・モードで IBM® EMM インストーラーを実行した後の Interact インストールの下の /ddl/Upgrades または /ddl/Upgrades/Unicode ディレクトリーにインストールされます。
2.
Interact に含まれているデータ定義言語 (DDL) とデータベース・スキーマが一致することを確認します。アップグレード・スクリプトの DDL とデータベース・スキーマが一致しない場合、環境と一致するように、ご使用のデータベース・タイプ用にスクリプトを編集してください。
以下の例は、Household オーディエンス・レベルをサポートするために aci_runtab_upgrd SQL アップグレード・スクリプトに対して加える必要がある変更を示しています。
既存の Interact 設計時環境には、Household という名前の追加オーディエンス・レベルが含まれています。Household オーディエンス・レベルをサポートするため、Interact ランタイム環境データベースには HH_CHStaging および HH_RHStaging という名前のテーブルが含まれています。
アップグレード・スクリプトに対する必要な変更:
a.
b.
以下のサンプル 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