逐次差分抽出を実行する前に、初期DBの創成が必要です。初期DBの創成は、"図13.9 初期DBの創成"の手順に従って行います。
図13.9 初期DBの創成

例として使用する"表13.3 初期DBの創成環境の構成"を以下に示します。
資源 | 名前 |
|---|---|
コンピュータ名 | SERVER1 |
インスタンス名 | DBINSTANCE |
データベース名 | 販促 |
SQLスクリプト | D:\def\in_sqlsv.sql |
出力CSVファイル | D:\def\out_sqlsv.csv |
サービスグループ名 | SERVICE1 |
DBサービス定義ファイル名 | SQLSVALL.def |
OUTTABLE識別名 | OUT00001 |
SQL Serverデータベースからレコードを抽出するためのSQLスクリプトを作成します。抽出したレコードは、CSV形式のファイルに格納します。
SQLスクリプトファイルの例を"表13.4 SQLスクリプトファイルの例"に示します。
set nocount on --行数を示すメッセージを表示しない
SELECT ISNULL(CHAR01,''), --char型(注1)
ISNULL(VCHAR01,''), --varchar型(注1)
ISNULL(NCHAR01,''), --nchar型(注1)
ISNULL(NVARCHAR01,''), --nvarchar型(注1)
DECIMAL01, --decimal型
NUMERIC01, --numeric型
INT01, --int型
SINT01, --smallint型
FLOAT01, --float型
REAL01, --real型
DATE01, --date型
DATETIME01, --datetime型
DATETIME2_01,--datetime2型
CONVERT(VARCHAR,SMALLDATETIME01,120)+".00", --smalldatetime型(注2)
TIME01 --time型
FROM SCHEMA01.IN_TBL; |
注1)文字型(char型、varchar型、nchar型、nvarchar型)は、ISNULL関数を指定してください。
注2)Linkexpressの時刻型は、秒未満の値まで必要です。smalldatetime型は、秒までであるため、秒未満までの値(.00)を付与してください。また、binary型のようにLinkexpressの初期抽出で使用できないデータ型があります。使用できないデータ型については、Linkexpressのマニュアルを参照してください。
SQLスクリプトの実行例を以下に示します。斜体の部分が修正箇所です。
---------------------------------------------------------------------------------------------------------- sqlcmd -S SERVER1\DBINSTANCE -E -d 販促 -i D:\def\in_sqlsv.sql -o D:\def\out_sqlsv.csv -s, -h -1 -W ----------------------------------------------------------------------------------------------------------
格納システムへの転送データ形式に変換するために、LinkexpressのDBサービス定義を作成します。DBサービス定義の作成の詳細については、Linkexpressのマニュアルを参照してください。
DBサービス定義の例を"表13.5 DBサービス定義の例"に示します。
INTABLE
NAME = INT00001
DATATYPE = ( local, non-attr csv )
CODE = sjis-ms
ITEM = (
( ITEM1, char(10))
,( ITEM2, vchar(10))
,( ITEM3, nchar(10))
,( ITEM4, vnchar(10))
,( ITEM5, pack(5,1))
,( ITEM6, zone(5,1))
,( ITEM7, int)
,( ITEM8, sint)
,( ITEM9, double)
,( ITEM10, real)
,( ITEM11, date)
,( ITEM12, datetime)
,( ITEM13, datetime)
,( ITEM14, datetime)
,( ITEM15, time)
)
FILE = D:\def\out_sqlsv.csv
;
EXTRACT
NAME = EXT00001
INTABLE = INT00001
CSV_INFO = ((DATE_DELIMITER,HYPHEN))
SELECT = *
;
OUTTABLE
NAME = OUT00001
DATATYPE = ( local )
EXTRACT = EXT00001
CODE = jef-ebcdic-kana
TEMPDIR = C:\temp
FILE = D:\def\out_sqlsv
LOADMODE = (new-ignore, insert)
;
|
以下の手順で格納システムへの転送データを作成します。転送データの作成の詳細については、Linkexpressのマニュアルを参照してください。
転送データの作成例を以下に示します。斜体の部分が修正箇所です。
------------------------------------------------ lxgensv -s SERVICE1 -f SQLSVALL (注) lxintsv -s SERVICE1 lxstrdb -s SERVICE1 -t OUT00001 ------------------------------------------------ 注)SQLSVALLには、拡張子(.def)を省略したDBサービス定義ファイル名を指定してください。
格納側システムにデータを転送後、初期DBを創成します。転送方法の詳細については、Linkexpressのマニュアルを参照してください。