17.10 - MultiLoadスクリプト ファイルの生成 - FastExport

Teradata® FastExportリファレンス

Product
FastExport
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2410-061K-JPN
Language
日本語 (日本)

EXPORTコマンドにMLSCRIPTオプションを指定すると、FastExportは、エクスポート タスクの関数パラメータを使用してMultiLoadスクリプト ファイルを生成します。このMultiLoadスクリプト ファイルを使用すれば、エクスポート データを後でデータベースに再ロードして戻すことができます。

以下の項に、生成されるMultiLoadスクリプト ファイルの例を挙げ、ファイルを実行する前に必要な変更について説明します。また、OUTMODルーチンやFastExportジョブで使用する複数の選択文の影響などについても説明します。

スクリプト ファイルの例

/* Date of extract: MON SEP 24, 2012 */
/* Time of extract: 16:59:15 */
/* Total records extracted for select 1 = 2 */
/* Output record length for select 1 = 41 variable */
/* NOTE: THE SCRIPT BELOW MAY NEED TO BE MODIFIED BEFORE RUNNING. */
.LOGTABLE LOGTABLE165915;
.LOGON slugger/fexp_usr,fexp_usr;
.SET DBASE_TARGETTABLE TO 'fexp_usr';
.SET DBASE_WORKTABLE TO 'fexp_usr';
.SET DBASE_ETTABLE TO 'fexp_usr';
.SET DBASE_UVTABLE TO 'fexp_usr';
.SET TARGETTABLE TO 'TABLE165915';
.BEGIN IMPORT MLOAD
TABLES &DBASE_TARGETTABLE..&TARGETTABLE
WORKTABLES &DBASE_WORKTABLE..WT_&TARGETTABLE
ERRORTABLES &DBASE_ETTABLE..ET_&TARGETTABLE
&DBASE_UVTABLE..UV_&TARGETTABLE;
.LAYOUT DATAIN_LAYOUT;
.FIELD COL001 1 INTEGER;
.FIELD COL002 5 DATE;
.FIELD COL003 9 CHAR(5);
.FIELD COL004 14 VARCHAR(8);
.FIELD COL005 * BYTEINT;
.FIELD COL006 * SMALLINT;
.FIELD COL007 * DECIMAL(5,2);
.FIELD COL008 * BYTE(2);
.FIELD COL009 * VARBYTE(3);
.FIELD COL010 * FLOAT;
.DML LABEL INSERT_DML;
INSERT INTO &DBASE_TARGETTABLE..&TARGETTABLE (
COL001 = :COL001
,COL002 = :COL002
,COL003 = :COL003
,COL004 = :COL004
,COL005 = :COL005
,COL006 = :COL006
,COL007 = :COL007
,COL008 = :COL008
,COL009 = :COL009
,COL010 = :COL010
);
.IMPORT INFILE dedtfm09.dat
FORMAT FASTLOAD
LAYOUT DATAIN_LAYOUT
APPLY INSERT_DML;
.END MLOAD;
.LOGOFF &SYSRC;
/* End of script */

MultiLoadスクリプト ファイルの変更

必要に応じて、生成後のMultiLoadスクリプト ファイルで以下のトピックを変更します。
  • ターゲット表の名前
  • INSERT文の列名
  • LAYOUT文のフィールド名
  • ログオン列
  • ログ表名
  • 次の各表のデータベース
    • ターゲット表
    • 作業テーブル
    • エラー テーブル
    • 固有違反表
上記以外の変更箇所は次のとおりです。
  • FastExportは、データベースから受信したフィールド サイズと型に基づいたMultiLoadスクリプトのレイアウトを生成します。ANSIDATEがDATEFORMコマンドで使用されている場合は、レイアウトの各フィールドにおける、すべてのANSI/SQL DateTimeのTIME、TIMESTAMPおよびINTERVALデータ型を、固定長のCHARデータ型に変換する必要があります。

    FIELDの ANSI/SQL Date/Time仕様表は、ANSI/SQL DateTimeの各仕様について、変換の仕様とフォーマットの例を示しています。

  • FastExportジョブでOUTMODルーチンを使用していて、OUTMODルーチンのレコード長が変更された場合は、生成されるMultiLoadスクリプトのレイアウト指定の変更が必要となる場合があります。
  • FastExportジョブで複数のSELECT文を使用している場合、応答行はすべて同一構造になっている必要があります。応答行の構造が統一されていない場合は、生成されるMultiLoadスクリプトのレイアウトが正しく機能しません。この場合は、生成されるMultiLoadスクリプト ファイルのオプションを使用するために次のようにします。
    • FastExportジョブのSELECT文ごとに個別のFastExportタスクを使用します。
    • 該当する各EXPORTコマンドで、異なるfileidを指定したMLSCRIPTオプションを使用する。
MultiLoadスクリプトを生成するFastExportジョブを実行したあとに、同じバッチ ファイル内で、そのFastExportジョブで生成されたスクリプトを使用するMultilLoadジョブを実行しないでください。一部のOSクライアント プラットフォームでは、この2つのジョブを同じバッチ ファイル内で実行すると、スクリプトの生成が完了する前にMultiLoadジョブが開始する場合があり、MultiLoadジョブのクラッシュにつながります。