逐次差分抽出を実行する前に、初期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のマニュアルを参照してください。