LOAD コマンド

LOAD コマンドは、大量のデータを効率的に Db2® 表にロードします。

LOAD コマンドは、ページ・レベルでデータをロードし、トリガーの起動とロギングをバイパスし、データが Db2 表にロードされるまで制約検査と索引作成を遅らせます。

サーバー上に保管するデータは、ファイル、テープ、 または名前付きパイプの形式にすることができます。 リモートに接続されたクライアント上に保管するデータは、 完全修飾ファイルまたは名前付きパイプの形式にすることができます。 また、データは、ユーザー定義カーソルから、あるいはユーザー作成のスクリプトまたはアプリケーションを使用してロードできます。 表の COMPRESS 属性が YESに設定されている場合、ロードされるデータは、表内にディクショナリーが存在するすべてのデータおよびデータベース・パーティション (表の XML ストレージ・オブジェクト内のデータを含む) で圧縮されます。

ロード・ユーティリティーのファイル・タイプ修飾子へのクイック・リンク。

制約事項

ロード・ユーティリティーでは、階層レベルのデータのロードはサポートされていません。 ロード・ユーティリティーには、範囲がクラスター化された表との互換性はありません。 ロード・ユーティリティーでは、NOT LOGGED INITIALLY パラメーターを CREATE TABLE や ALTER TABLE ステートメントでサポートしていません。

範囲

このコマンドは、一度の要求で複数のデータベース・パーティションに対して発行できます。

許可

以下の権限のうちの 1 つ以上。
  • DATAACCESS
  • 表のスキーマに対するスキーマ DATAACESS
  • データベースに対する LOAD 権限またはスキーマに対する SCHEMA_LOAD 権限に加え、以下の特権
    • 表の INSERT または INSERTIN 特権 (ロード・ユーティリティーが INSERT モード、TERMINATE モード、または RESTART モードで呼び出される場合 ( TERMINATE モードは直前のロード挿入操作を終了するためのもので、RESTART モードは直前のロード挿入操作を再開するためのものです))
    • 表の INSERT または INSERTIN および DELETE または DELETEIN 特権 (ロード・ユーティリティーが REPLACE モード、TERMINATE モード、または RESTART モードで呼び出される場合)。 TERMINATE モードは直前のロード置換操作を終了するためのもので、RESTART モードは直前のロード置換操作を再開するためのものです。
    • 例外表の INSERT または INSERTIN 特権 (例外表をロード操作の一部として使用する場合)。
  • 保護列のある表にデータをロードするには、 その表内のすべての保護列への書き込みアクセスを許可する LBAC 資格情報を、 セッション許可 ID が直接保持しているか、 あるいはグループまたはロールを介して間接的に保持している必要があります。 そうでない場合は、ロードが失敗してエラー (SQLSTATE 5U014) が戻されます。
  • 保護された行を持つ表にデータをロードするには、セッション許可 ID が、以下の基準を満たすセキュリティー・ラベルを保持していなければなりません。
    • セキュリティー・ラベルは表を保護しているセキュリティー・ポリシーの一部である
    • セキュリティー・ラベルは、 書き込みアクセスまたはすべてのアクセス用にセッション許可 ID に直接付与されているか、グループまたはロールを介して間接的に付与されている。
    こうしたセキュリティー・ラベルをセッション許可 ID が保持していない場合は、ロードが失敗してエラー (SQLSTATE 5U014) が戻されます。 セキュリティー・ラベルは、セッション許可 ID LBAC 信用証明情報が、データ内のロードされる行を保護するセキュリティー・ラベルにその許可 ID が書き込むことを許可しない場合に、その行を保護します。 ただし、表を保護しているセキュリティー・ポリシーが CREATE SECURITY POLICY ステートメントの RESTRICT NOT AUTHORIZED WRITE SECURITY LABEL オプションを使用して作成されている場合は、その状況にはなりません。 その場合は、ロードが失敗してエラー (SQLSTATE 42519) が戻されます。

    保護行が含まれている表にデータをロードする場合は、ターゲット表にデータ・タイプ Db2SECURITYLABEL の列が 1 つ含まれています。 入力データ行にその列の値が含まれていない場合、その行はリジェクトされます。ただし、ロード・コマンドに usedefaults ファイル・タイプ修飾子が指定されている場合は例外で、その表を保護しているセキュリティー・ポリシーで書き込みアクセスが認められているセキュリティー・ラベルが使用されます。 書き込みアクセス用のセキュリティー・ラベルがない場合、その行はリジェクトされ、次の行に処理が続行されます。

  • 保護されている行を持つ表に対して、REPLACE オプションを指定した場合は、表をドロップするための権限がセッション許可 ID になければなりません。
  • LOCK WITH FORCE オプションを指定する場合は、SYSMAINT、SYSCTRL、または SYSADM のいずれかの権限が必要です。
  • 表の行アクセス制御がアクティブになっている場合、その表の LOAD REPLACE では、表をドロップする権限が必要になります。 具体的には、表に対する CONTROL、または表が入ったスキーマに対する DROPIN または SCHEMAADM、または表に対する DBADM のいずれかが必要になります。

すべてのロード・プロセス (および一般にすべての Db2 サーバー・プロセス) はインスタンス所有者によって所有されており、それらのプロセスすべてにおいて、必要なファイルにアクセスするためにそのインスタンス所有者の ID を使用するため、 インスタンス所有者には入力データ・ファイルに対する読み取りアクセス権が必要です。 だれがコマンドを呼び出すかに関係なく、これらの入力データ・ファイルはインスタンス所有者から読み取り可能になっていなければなりません。

必要な接続

データベース。 暗黙的な接続が可能である場合には、 デフォルトのデータベースへの接続が確立されます。

インスタンス。 明示的なアタッチは必要ありません。 データベースへの接続が確立されている場合には、 ローカル・インスタンスへの暗黙的な接続が試みられます。

コマンド構文

Read syntax diagramSkip visual syntax diagram LOAD CLIENT FROM ,filenameremotefilenamepipenamedevicecursorname OF filetype LOBS FROM,lob-pathXML FROM,xml-pathMODIFIED BYfile-type-modMETHODL(,col-startcol-end)NULL INDICATORS(,null-indicator-list)N(,col-name)P(,col-position)XMLPARSESTRIPPRESERVEWHITESPACEXMLVALIDATE USINGXDSDEFAULTschema-sqlidIgnore and Map parametersSCHEMAschema-sqlidSCHEMALOCATION HINTS
Ignore and Map parameters
Read syntax diagramSkip visual syntax diagramIGNORE(,schema-sqlid)MAP(,(schema-sqlid,schema-sqlid))
Read syntax diagramSkip visual syntax diagramSAVECOUNTnROWCOUNTnWARNINGCOUNTnMESSAGESmessage-fileTEMPFILES PATHtemp-pathnameINSERTREPLACEKEEPDICTIONARYRESETDICTIONARYRESETDICTIONARYONLYRESTARTTERMINATE INTOtable-name (,insert-column) FOR EXCEPTIONtable-name,12NORANGEEXCNOUNIQUEEXCSTATISTICS NO3STATISTICS USE PROFILECOPYNOYESUSE TSMOPENnum-sessSESSIONSTO,device/directoryLOADlib-nameOPENnum-sessSESSIONSNONRECOVERABLEWITHOUT PROMPTINGDATA BUFFERbuffer-sizeSORT BUFFERbuffer-sizeCPU_PARALLELISMnDISK_PARALLELISMnINDEXING MODEAUTOSELECTREBUILDINCREMENTALDEFERREDALLOW NO ACCESSALLOW READ ACCESSUSEtablespace-nameFETCH_PARALLELISMYESNOSET INTEGRITY PENDING CASCADEIMMEDIATEDEFERRED LOCK WITH FORCE SOURCEUSEREXITexecutableRedirect Input/Output parametersPARALLELIZEPARTITIONED DB CONFIGpartitioned-db-option
Redirect Input/Output parameters
Read syntax diagramSkip visual syntax diagramREDIRECTINPUT FROMBUFFERinput-bufferFILEinput-fileOUTPUT TO FILEoutput-fileOUTPUT TO FILEoutput-file
Notes:
  • 1 These keywords can appear in any order.
  • 2 Each of these keywords can appear only once.
  • 3 For column-organized tables, the default is the STATISTICS USE PROFILE parameter.

コマンド・パラメーター

CLIENT
ロードするデータが、リモートに接続するクライアントにあることを指定します。 ロード操作がリモート・クライアントから呼び出されない場合、 このオプションは無視されます。 CURSOR ファイル・タイプと併せて指定された場合、このオプションは無視されます。
注:
  1. dumpfile および lobsinfile 修飾子および XML FROM オプションは、CLIENT キーワードが指定されている場合でも、サーバー上のファイルを参照します。
  2. コード・ページ変換は、リモートのロード操作時には実行されません。 データのコード・ページがサーバーのコード・ページとは異なる場合、 codepage 修飾子を使用してデータのコード・ページを指定する必要があります。
以下の例では、リモートに接続されたクライアント上に存在するデータ・ファイル (/u/user/data.del) は、 サーバー・データベース上の MYTABLE にロードされます。
db2 load client from /u/user/data.del of del
   modified by codepage=850 insert into mytable
FROM filename | remotefilename | pipename | device | cursorname
ロードされるデータを含んだ SQL ステートメントを参照するファイル、パイプ、装置、またはカーソルを指定します。 入力ソースがファイル、パイプ、または装置の場合、CLIENT オプションが指定されていなければ、 データベースが存在するデータベース・パーティションになければなりません。 filename パラメーターの最大長は 256 - length of absolute path to file - 1です。
remotefilename は、 IBM® Cloud Object Storage や Amazon Simple Storage Service (S3) などのリモート・ストレージ上にあり、ストレージ・アクセス別名を使用してアクセスされるファイルを参照します。 リモート・ストレージ・サーバーから転送されるファイルを一時的に保管するには、ローカル・ステージング・スペースが必要です。 リモート・ストレージ要件を参照してください。 リモート・ファイル名の構文は、次のとおりです。
DB2REMOTE://<alias>//<storage-path>/<file-name> 
複数の名前を指定すると、それらは順番に処理されます。 最後に指定した項目がテープ装置の場合は、 別のテープを使用するようユーザーに対してプロンプトが出ます。 有効な応答オプションは、次のとおりです。
c
継続します。 警告メッセージを生成した装置の使用を続けます (例えば、新しいテープをマウントしたときなど)。
d
装置の終了。 警告メッセージを生成した装置の使用を停止します (例えば、 それ以上テープがない場合)。
t
終了します。 すべての装置を終了します。
注:
  • 完全修飾ファイル名を使用します。 リモート・サーバーの場合は、常に完全修飾ファイル名を使用する必要があります。 呼び出し側と同じデータベース・パーティションにデータベースが存在する場合には、 相対パスを使用することもできます。
  • ADMIN_CMD プロシージャーを使用した EXPORT コマンドを使用してデータをファイルにエクスポートした場合、そのデータ・ファイルは fenced ユーザー ID によって所有されます。 このファイルは通常、インスタンス所有者がアクセスすることはできません。 LOAD を CLP または ADMIN_CMD プロシージャーから実行するには、インスタンス所有者 ID はデータ・ファイルにアクセスできなければならないので、データ・ファイルに対する読み取りアクセス権限をインスタンス所有者に付与する必要があります。
  • ファイルが物理的には分割されてはいるが論理的には 1 つのファイルである場合には、 複数の IXF ファイルからのデータのロードがサポートされています。 ファイルが論理的にも物理的にも分割されている場合は、 サポートされていません。 論理的にも物理的にも分割されているファイルを複数指定した場合、 最初のファイルより後のファイルはすべて無視されます。 (複数の物理ファイルがすべて一度の EXPORT コマンドの呼び出しで作成された場合、 それらは論理的には 1 つであると見なされます。)
  • クライアント・マシン上に存在するデータをロードする場合、 そのデータは、完全修飾ファイルまたは名前付きパイプのいずれかの形式でなければなりません。
  • XML データをファイルからパーティション・データベース環境にある表にロードする場合、XML データ・ファイルはロードが実行されるすべてのデータベース・パーティションから読み取りアクセス可能でなければなりません。
OF filetype
データのフォーマットを指定します。
  • ASC (区切りなし ASCII フォーマット)
  • DEL (区切り付き ASCII フォーマット)
  • IXF (統合交換フォーマット、PC バージョン) は、Db2 データベースによってのみ使用されるバイナリー・フォーマットです。
  • CURSOR (SELECT または VALUES ステートメントに対して宣言されたカーソル)。
注:
  • CURSOR ファイル・タイプを使用して XML データを分散データベース環境にある表にロードする場合、PARTITION_ONLY および LOAD_ONLY モードはサポートされません。
  • DECLARE CURSOR ステートメントで DATABASE キーワードを指定した CURSOR ファイル・タイプを使用してロードを実行する場合、 ロードは、データをフェッチするための別のアプリケーションを内部的に作成します。 一方、DATABASE キーワードを指定しなかった場合、ロードは同じアプリケーション内でデータをフェッチします。 この 2 つのケースの違いにより、 ロッキング動作にも違いが生じます。 特に、DATABASE キーワードを指定しており、現在接続しているデータベースと同じデータベースをそこで使用している場合 (また、ユーザー ID およびパスワードを指定している場合はそれらが現行接続と同じである場合)、ロックの問題 (データベース構成によって異なるが、ロック待機やロック・タイムアウトなど) が発生する可能性があります。 これは、DATABASE キーワードを省略することで回避できます。
LOBS FROM lob-path
ロードする LOB 値が収められているデータ・ファイルへのパス。 パスの最後はスラッシュでなければなりません。 CLIENT オプションを指定する場合、パスは完全修飾されている必要があります。 LOB データ・ファイルの名前は、 メイン・データ・ファイル (ASC、DEL、または IXF) の、LOB 列にロードされる列内に保管されます。 指定できるパスの最大数は 999 です。 これによって、LOBSINFILE 動作が暗黙的にアクティブ化されます。

CURSOR ファイル・タイプと併せて指定された場合、このオプションは無視されます。

MODIFIED BY file-type-mod
ファイル・タイプ修飾子オプションを指定します。 ロード・ユーティリティーのファイル・タイプ修飾子を参照してください。
METHOD
L
データのロードを開始する列および終了する列の番号を指定します。 列の番号は、データの行の先頭からのバイト単位のオフセットです。 この番号は 1 から始まります。 このメソッドは、ASC ファイルでのみ使用でき、そのファイル・タイプに対して有効な唯一のメソッドです。
NULL INDICATORS null-indicator-list
このオプションは、METHOD L パラメーターを指定した場合だけ使用できます (つまり、入力ファイルが ASC ファイルの場合)。 NULL 標識リストは、コンマで区切られた正の整数のリストで、 各 NULL 標識フィールドの列の番号を指定します。 列の番号は、データの行の先頭からのバイト単位の、各 NULL 標識フィールドのオフセットです。 NULL 標識リストには、METHOD L パラメーターで定義された各データ・フィールドに対する 1 つの項目がなければなりません。 列の番号がゼロであることは、 対応するデータ・フィールド内に必ずデータがあることを示します。

NULL 標識列中の Y の値は、その列データが NULL であることを指定します。 NULL 標識列の 以外の Y 文字は、列データが NULL でないこと、および METHOD L オプションで指定された列データがロードされることを指定します。

NULL 標識文字は、MODIFIED BY オプションを使用して変更できます。

N
ロードするデータ・ファイルの中の列の名前を指定します。 これらの列名の大文字小文字の区別は、 システム・カタログ内の対応する名前の大文字小文字の区別と一致しなければなりません。 NULL 可能ではない各表の列には、METHOD N リスト内に対応する項目が必要です。 例えば、データ・フィールドが F1、 F2、 F3、 F4、 F5、 および F6 であり、 表の列が C1 INT、C2 INT NOT NULL、C3 INT NOT NULL、および C4 INT の場合、 method N (F2, F1, F4, F3) は有効な要求ですが、 method N (F2, F1) は無効です。 この方式は、ファイル・タイプ IXF または CURSOR の場合にのみ使用することができます。
P
ロードする入力データ・フィールドのフィールド番号 (1 から始まる) を指定します。 NULL 可能ではない各表の列には、METHOD P リスト内に対応する項目が必要です。 例えば、データ・フィールドが F1、 F2、 F3、 F4、 F5、 および F6 であり、 表の列が C1 INT、C2 INT NOT NULL、C3 INT NOT NULL、および C4 INT の場合、 method P (2, 1, 4, 3) は有効な要求ですが、 method P (2, 1) は無効です。 この方式は、ファイル・タイプ IXF、DEL、または CURSOR の場合にのみ使用でき、 DEL ファイル・タイプに対して有効な唯一の方式です。
method P によって指定したフィールドごとに、 対応する列をアクション・ステートメント内に定義する必要があります。ただし、次の例に示すようにすべての列が対象になる場合、および最初の x 列がロードされる場合は必要ありません。
  db2 load from datafile1.del of del method P(1, 3, 4)
      replace into table1 (c1, c3, c4) 
XML FROM xml-path
XML ファイルが含まれているパスを 1 つ以上指定します。 XDS は、メイン・データ・ファイル (ASC、DEL、または IXF) の、XML 列にロードされる列内に入れられます。
XMLPARSE
XML 文書の解析方法を指定します。 このオプションが指定されていない場合、XML 文書の解析の動作は、CURRENT IMPLICIT XMLPARSE OPTION 特殊レジスターの値によって決まります。
STRIP WHITESPACE
XML 文書の解析時に空白文字を除去することを指定します。
PRESERVE WHITESPACE
XML 文書の解析時に空白文字を除去しないことを指定します。
XMLVALIDATE
該当する場合に、XML 文書がスキーマに準拠しているかどうかの妥当性検査を実行することを指定します。
USING XDS
メイン・データ・ファイルの中で XML Data Specifier (XDS) によって指定されている XML スキーマに準拠しているかどうかについて、XML 文書の妥当性検査が実行されます。 デフォルトでは、USING XDS 節によって XMLVALIDATE オプションが呼び出された場合、妥当性検査実行のために使用されるスキーマは、その XDS の SCH 属性によって決まります。 XDS の中で SCH 属性が指定されていない場合、DEFAULT 節によってデフォルト・スキーマが指定されているのでない限り、スキーマ妥当性検査は実行されません。

DEFAULTIGNORE、および MAP 節を使用することにより、スキーマ決定の動作を変更することができます。 これら 3 つの節はオプションであり、相互に適用されるのではなく XDS の指定に直接適用されます。 例えば、DEFAULT 節で指定されているためにあるスキーマが選択された場合、それが IGNORE 節で指定されていたとしても無視されることはありません。 同じように、MAP 節のペアの最初の部分で指定されているためにあるスキーマが選択された場合、それが別の MAP 節のペアの 2 番目の部分で指定されていたとしても再びマップされることはありません。

USING SCHEMA schema-sqlid
指定されている SQL ID の XML スキーマに準拠しているかどうかについて、XML 文書の妥当性検査が実行されます。 この場合、すべての XML 列について XML Data Specifier (XDS) の SCH 属性は無視されます。
USING SCHEMALOCATION HINTS
ソース XML 文書の中で XML スキーマ・ロケーション・ヒントによって指定されているスキーマに準拠しているかどうかについて、XML 文書の妥当性検査が実行されます。 その XML 文書の中に schemaLocation 属性が指定されていない場合、妥当性検査は実行されません。 USING SCHEMALOCATION HINTS 節を指定すると、XML Data Specifier (XDS) の SCH 属性はすべての XML 列で無視されます。
以下のセクションに示す XMLVALIDATE オプションの例を参照してください。
IGNORE schema-sqlid
このオプションは、USING XDS パラメーターを指定した場合にのみ使用できます。 IGNORE 節は、SCH 属性によって指定されていても無視するスキーマとして、1 つ以上のスキーマのリストを指定します。 ロードする XML 文書の XML Data Specifier の中に SCH 属性が存在し、その SCH 属性によって指定されるスキーマが無視するスキーマ・リストに含まれている場合には、ロードするその XML 文書についてスキーマ妥当性検査は実行されません。
注:

あるスキーマが IGNORE 節の中で指定されている場合、MAP 節のスキーマ・ペアの左辺にそれを含めることはできません。

IGNORE 節は XDS にのみ適用されます。 あるスキーマが IGNORE 節によって指定されていても、それが MAP 節によってマップされているなら、それ以降そのスキーマが無視されることはありません。

DEFAULT schema-sqlid
このオプションは、USING XDS パラメーターを指定した場合にのみ使用できます。 DEFAULT 節で指定されたスキーマは、ロード対象 XML 文書の XML Data Specifier (XDS) に XML スキーマを指定する SCH 属性が含まれていない場合に、妥当性検査のために使用するスキーマとなります。

DEFAULT 節は、IGNORE 節および MAP 節よりも優先されます。 XDS が DEFAULT 節を満たすなら、IGNOREMAP の指定は無視されます。

MAP schema-sqlid
このオプションは、USING XDS パラメーターを指定した場合にのみ使用できます。 MAP 節は、ロードする各 XML 文書について XML Data Specifier (XDS) の SCH 属性によって指定されるスキーマの代わりに使用する代替スキーマを指定するのに使用します。 MAP 節には、それぞれがあるスキーマから別のスキーマへのマッピングを表すスキーマ・ペアを 1 つ以上列挙したリストを指定します。 ペア中の最初のスキーマは、XDS 内の SCH 属性によって参照されるスキーマを表します。 ペア中の 2 番目のスキーマは、スキーマ妥当性検査の実行で使用する必要のあるスキーマを表します。

あるスキーマが MAP 節のスキーマ・ペアの左辺で指定されている場合、IGNORE 節でさらにそれを指定することはできません。

スキーマ・ペアのマッピングが適用されたなら、その結果は最終的なものです。 マッピング操作は推移的ではないため、選択されたスキーマが、それ以降に別のスキーマ・ペアのマッピングに適用されることはありません。

スキーマを複数回マップすることはできません。 つまり、複数のペアの左辺に指定することはできません。

SAVECOUNT n
ロード・ユーティリティーが n 行ごとに整合点を取ることを指定します。 この値はページ・カウントに変換され、エクステント・サイズのインターバルに切り上げられます。 整合点ごとにメッセージが発行されるので、LOAD QUERY を使用してロード操作をモニターする場合には、このオプションを選択する必要があります。 n の値が十分な大きさでない場合、各整合点で実行される活動の同期化によってパフォーマンスが低下する可能性があります。

デフォルト値はゼロですが、それは、必要がなければ整合点は確立されないことを意味します。

CURSOR ファイル・タイプと併せて指定された場合、または XML 列を含む表をロードする場合、このオプションは使用できません。

SAVECOUNT パラメーターは、 カラム・オーガナイズ 表ではサポートされません。

ROWCOUNT n
ロードするファイル内の物理レコードの数 n を指定します。 anyorder ファイル・タイプ修飾子を有効にすると、不特定の n 行をファイルからロードできます。 有効にしない場合は、最初の n 行がロードされます。
注: anyorder ファイル・タイプ修飾子は、特定の表タイプに対してデフォルトで有効になっています。 詳しくは、 anyorderを参照してください。
WARNINGCOUNT n
n 個の警告後に、ロード操作を停止します。 このパラメーターは、警告は予期されないが、 正しいファイルと表が使用されていることを確認するのが望ましい場合に設定してください。 ロード・ファイルまたはターゲット表の指定が正しくない場合、ロード対象の行ごとにロード・ユーティリティーによって警告が生成され、これがロード失敗の原因となります。 n がゼロの場合、またはこのオプションが指定されていない場合、何度警告が出されてもロード操作は続行します。
警告のしきい値に達したためにロード操作が停止された場合でも、あらためて RESTART モードでロード操作を開始できます。 ロード操作は、最後の整合点から自動的に続行します。 または、入力ファイルの先頭から REPLACE モードであらためてロード操作を開始できます。
パーティション・データベース環境において、LOAD 操作は、複数のロード・エージェントおよびパーティション・エージェントを持つことができます。 各エージェントには WARNINGCOUNT 値があります。 1 つのエージェントで n の値に到達すると、LOAD 操作は失敗します。 n 値は累積ではありません。 例えば、n が 3 であり、2 つのエージェントの WARNINGCOUNT がそれぞれ 2 である場合、LOAD 操作は成功します。
MESSAGES message-file
ロード操作中に生じ得る警告およびエラー・メッセージの宛先を指定します。 メッセージ・ファイルを指定しなかった場合、インスタンスがパーティション・データベース環境として構成されていない限り、メッセージは標準出力に書き込まれます。 このファイルへの完全パスが指定されていない場合、 ロード・ユーティリティーは現行のディレクトリーおよびデフォルトのドライブを宛先として使用します。 既に存在するファイル名を指定すると、ロード時に情報が追加されます。

通常、メッセージ・ファイルには、ロード操作の終了時にメッセージが入れられますが、 それ自体は操作の進行状況のモニターには適していません。

TEMPFILES PATH temp-pathname
ロード操作時に一時ファイルを作成する場合に使用するパスの名前を指定します。 これはサーバー・データベース・パーティションに従って完全に修飾しなければなりません。
一時ファイルは、ファイル・システムのスペースを使用します。 場合によっては、このスペースが相当必要になります。 以下に、すべての一時ファイルに割り振る必要があるファイル・システム・スペース量の推定値をリストします。
  • ロード・ユーティリティーが生成するメッセージごとに 136 バイト。
  • データ・ファイルに長フィールド・データまたは LOB が入っている場合は、15 KB のオーバーヘッド。 INSERT パラメーターを指定する場合、 既に表に大量の長フィールドまたは LOB データが存在していると、 この数量はこれよりもかなり大きくなる場合があります。
  • カラム・コンプレッション・ディクショナリーを作成する場合は、データ・ソース (パイプやソケットなど) が再オープン不可であれば、サーバー上に、入力データの未加工サイズと同量のストレージ・スペース。
INSERT
既存の表データを変更することなく、ロードされたデータを表に追加します。

カラム・オーガナイズ 表に対する LOAD INSERT 操作では、表が新規であるか、切り捨てられており、ロード操作の開始時に空であった場合に、デフォルトで表統計が更新されます。

REPLACE
表からデータをすべて削除し、新しいデータを挿入します。 表定義および索引定義は変更されません。 階層間でデータを移動する際にこのパラメーターを指定する場合、階層全体のデータのみ置き換えられます。個々の副表を置き換えることはできません。

このパラメーターを使用してシステム期間テンポラル表にデータをロードすることはできません。

カラム・オーガナイズ 表への LOAD REPLACE 操作は、デフォルトで表統計を更新します。

KEEPDICTIONARY
LOAD REPLACE 操作の後も、既存のコンプレッション・ディクショナリーを保持します。

このオプションは、 行オーガナイズ 表のデフォルトです。

表の COMPRESS 属性が YES の場合、新規に置換されるデータは、ロードの呼び出し前に存在していたディクショナリーを使用して圧縮されるという影響を受けます。 ディクショナリーが表の中に以前に存在していない場合、表の COMPRESS 属性が YES である限り、置換されて表に入れられるデータを使用して新規ディクショナリーが作成されます。

この場合のコンプレッション・ディクショナリーを作成するために必要なデータ量は、ADC のポリシーの影響を受けます。 このデータは圧縮解除された状態で表に取り込まれます。 ディクショナリーが表にいったん挿入されると、ロード対象の残りのデータは、このディクショナリーを使用して圧縮されるという影響を受けます。 要約については、次の表を参照してください。

表 1. LOAD REPLACE KEEPDICTIONARY
圧縮 表の行データ・ディクショナリーが存在する XML ストレージ・オブジェクト・ディクショナリーが存在する1 コンプレッション・ディクショナリー データ圧縮
はい はい はい 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 ロードされるデータは圧縮の対象になります。
はい はい いいえ 表の行データ・ディクショナリーを保存し、新規 XML ディクショナリーを作成します。 ロードされる表の行データは圧縮の対象になります。 XML ディクショナリーが作成された後に、ロードされる残りの XML データは圧縮の対象になります。
はい いいえ はい 表の行データ・ディクショナリーを作成し、XML ディクショナリーを保存します。 表の行データ・ディクショナリーが作成された後に、ロードされる残りの表の行データは圧縮の対象になります。 ロードされる XML データは圧縮の対象になります。
はい いいえ いいえ 新規の表の行データおよび XML ディクショナリーを作成します。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
いいえ はい はい 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
いいえ はい いいえ 表の行データ・ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
いいえ いいえ はい 表の行ディクショナリーには影響はありません。 XML ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
いいえ いいえ いいえ 影響なし。 ロードされるデータは、圧縮されません。
注:
  1. コンプレッション・ディクショナリーは、XML 列が Db2 バージョン 9.7 以降の表に追加された場合または表が Online Table Move を使用してマイグレーションされた場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。
  2. LOAD REPLACE KEEPDICTIONARY 操作が中断された場合、ロード・ユーティリティーは、 LOAD RESTART または LOAD TERMINATE のいずれかが発行された後でリカバリーすることができます。 既存の XML ストレージ・オブジェクト・ディクショナリーは、中断された LOAD REPLACE KEEPDICTIONARY 操作をリカバリーした後は、保持されていない可能性があります。 LOAD RESTART を使用する場合、新しい XML ストレージ・オブジェクト・ディクショナリーが作成されます。
RESETDICTIONARY
このディレクティブは、LOAD REPLACE 処理に、表の COMPRESS 属性が YES の場合には表データ・オブジェクトの新規ディクショナリーを作成するように指示します。

COMPRESS 属性が NO で、ディクショナリーがすでに表にある場合、それは除去され、新規ディクショナリーは表に挿入されません。

このオプションは、 カラム・オーガナイズ 表のデフォルトです。

カラム・オーガナイズ表の場合は、データベース・パーティションのサブセットに LOAD REPLACE … RESETDICTIONARY を指定することはできません (SQL27906N)。 OUTPUT_DBPARTNUMS オプションを含める場合は、すべてのデータベース・パーティションを指定する必要があります。

コンプレッション・ディクショナリーは 1 つのユーザー・レコードのみを使用して作成できます。 ロードするデータ・セットのサイズがゼロの場合は、既存のディクショナリーが存在していても、そのディクショナリーは保持されません。 このディレクティブを使用してディクショナリーを作成するために必要なデータ量は、ADC のポリシーの影響を受けません。 要約については、次の表を参照してください。

表 2. LOAD REPLACE RESETDICTIONARY
圧縮 表の行データ・ディクショナリーが存在する XML ストレージ・オブジェクト・ディクショナリーが存在する1 コンプレッション・ディクショナリー データ圧縮
はい はい はい 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
はい はい いいえ 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
はい いいえ はい 新規ディクショナリーの作成。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
はい いいえ いいえ 新規ディクショナリーの作成。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
いいえ はい はい ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
いいえ はい いいえ 表の行データ・ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
いいえ いいえ はい XML ストレージ・オブジェクト・ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
いいえ いいえ いいえ 影響なし。 すべての表データが圧縮されるわけではありません。
注:
  1. コンプレッション・ディクショナリーは、XML 列が Db2 バージョン 9.7 以降の表に追加された場合または表が Online Table Move を使用してマイグレーションされた場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。
  2. ディクショナリーが存在していて圧縮属性が有効であるものの、表パーティションにロードするレコードがない場合、新規ディクショナリーを作成することはできず、RESETDICTIONARY 操作では既存のディクショナリーは保持されません。
RESETDICTIONARYONLY
このオプションを指定すると、行をロードすることなく、入力ファイルに基づいてカラム・コンプレッション・ディクショナリーが作成されます。 このオプションを使用すれば、SQL ベースのユーティリティーを使ってデータの取り込み (INGEST) を行う前に、コンプレッション・ディクショナリーを作成できます。

このオプションは、 カラム・オーガナイズ 表にのみ適用されます。

データベース・パーティションのサブセットに LOAD REPLACE … RESETDICTIONARYONLY を指定することはできません (SQL27906N)。 OUTPUT_DBPARTNUMS オプションを含める場合は、すべてのデータベース・パーティションを指定する必要があります。

TERMINATE
ロード・ユーティリティーを実行できる 4 つのモードのうちの 1 つ。 以前に割り込みを受けたロード操作を終了し、 ロード操作が開始された時点まで操作をロールバックします。 途中に整合点があっても通過します。 その操作に関係する表スペースの状態は通常に戻され、 すべての表オブジェクトの整合性が保たれます (索引オブジェクトが無効とマークされる場合がありますが、 そのような場合には、次回のアクセス時に索引の再作成が自動的に行われます)。 終了するロード操作が LOAD REPLACE の場合、その表は LOAD TERMINATE 操作完了後に空の表まで切り捨てられます。 終了するロード操作が LOAD INSERT の場合、 その表は LOAD TERMINATE 操作完了後も元のレコードをすべて保持します。 ディクショナリー管理の要約を表 3 に示します。

LOAD TERMINATE オプションでは、表スペースの BACKUP PENDING 状態は解除されません。

RESTART
割り込みを受けたロード操作を再開します。 ロード操作は、ロード、作成、または削除フェーズの最後の整合点から自動的に続行されます。 ディクショナリー管理の要約を表 4 に示します。
RESTART パラメーターは、以下の表ではサポートされません。
  • カラム・オーガナイズ表
  • 生成別ランダム方式を使用するランダム分散表
ロード操作が失敗した後にこのタイプの表をリカバリーするには、TERMINATE パラメーターまたは REPLACE パラメーターを使用します。
INTO table-name
データのロード先となるデータベース表を指定します。 この表として、システム表、宣言済み一時表、または作成済み一時表は指定できません。 別名、完全修飾、または非修飾の表名を指定できます。 修飾された表名は、schema.tablename の形式になります。 非修飾の表名を指定すると、その表は CURRENT SCHEMA で修飾されます。
暗黙的な非表示列がデータベース表に含まれる場合には、ロード操作に非表示列のデータを含めるかどうかを指定する必要があります。 非表示列のデータを含めるかどうかを示すには、以下のいずれかの方法を使用します。
  • insert-column を使用して、データの挿入先となる列を明示的に指定します。
    db2 load from delfile1 of del
       insert into table1 (c1, c2, c3,...)
  • 隠し列ファイル・タイプ修飾子の 1 つを使用します。入力ファイルに隠し列のデータが含まれている場合は implicitlyhiddeninclude を指定し、入力ファイルに含まれていない場合は implicitlyhiddenmissing を指定します。
    db2 load from delfile1 of del modified by implicitlyhiddeninclude
       insert into table1 
  • 暗黙的な非表示列が含まれる表をデータ移動ユーティリティーが検出した場合のデフォルト動作を設定するには、DB2_DMU_DEFAULT レジストリー変数をサーバー・サイドで使用します。 暗黙的な非表示列が含まれるとユーティリティーが想定するようにするには IMPLICITLYHIDDENINCLUDE を、暗黙的な非表示列は含まれないとユーティリティーが想定するようにするには IMPLICITLYHIDDENMISSING を指定します。
    db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
    db2 load from delfile1 of del insert into table1 
insert-column
データの挿入先となる表の列を指定します。
ロード・ユーティリティーは、1 つ以上のスペースを使った名前の列を解析できません。 以下に例を示します。
db2 load from delfile1 of del noheader 
   method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
   insert into table1 (BLOB1, S2, I3, Int 4, I5, I6, DT7, I8, TM9)
は、Int 4 列があるためエラーになります。 これは、次のようにして二重引用符で列名を囲むことによって解決できます。
db2 load from delfile1 of del noheader 
   method P (1, 2, 3, 4, 5, 6, 7, 8, 9)
   insert into table1 (BLOB1, S2, I3, "Int 4", I5, I6, DT7, I8, TM9)
FOR EXCEPTION table-name
エラーが発生した行のコピー先となる例外表を指定します。 ユニーク索引または主キー索引に違反した行がコピーされます。 非修飾の表名を指定すると、その表名は現行のスキーマで修飾されます。 表を カラム・オーガナイズ 表にすることはできません。

例外表に書き込まれる情報は、 ダンプ・ファイルには書き込まれません 。 パーティション・データベース環境では、 ロードする表を定義されたデータベース・パーティションの例外表を定義する必要があります。 一方、ダンプ・ファイルには、無効であるか構文エラーであるためにロードできない行が入ります。

XML データのロード時に、 FOR EXCEPTION 節を使用してロード例外表を指定することは、以下の場合にはサポートされません。
  • ラベル・ベースのアクセス制御 (LBAC) を使用する場合。
  • パーティション表にデータをロードする場合。
NORANGEEXC
範囲違反のためにリジェクトされた行は、例外表に挿入しないことを指定します。
NOUNIQUEEXC
ユニーク制約に違反しているためにリジェクトされた行は、例外表に挿入しないことを指定します。
STATISTICS USE PROFILE
この表で定義されているプロファイルに従ってロード中に統計を収集するようロード操作に指示します。 これは、 カラム・オーガナイズ 表のデフォルトです。 このプロファイルは、LOAD コマンドを発行する前に作成する必要があります。 そのプロファイルは、RUNSTATS コマンドで作成します。 行オーガナイズ 表では、プロファイルが存在しない場合にこのパラメーターを指定すると、警告が返され、統計は収集されません。 カラム・オーガナイズ 表では、プロファイルが存在せず、このパラメーターが指定されている場合、ロード・ユーティリティーは、自動 runstats 操作中に使用されるものと同じデフォルトの RUNSTATS コマンド・オプションを使用します。

ロードの際に、分散統計はタイプ XML の列については収集されません。

STATISTICS NO
統計データを収集せず、したがってカタログ内の統計データも変更しないことを指定します。 このパラメーターは、 行オーガナイズ 表のデフォルトです。
COPY NO
順方向リカバリーが使用可能な場合 (つまり、 logarchmeth1 または logarchmeth2 のいずれかが OFF以外の値に設定されている場合)、表が存在する表スペースをバックアップ・ペンディング状態にすることを指定します。 COPY NO オプションを使用する場合も、表スペース状態は LOAD IN PROGRESS になります。 これは、一時的な状態であり、ロードが完了するか失敗すると解除されます。 表スペースのバックアップまたはデータベースのフルバックアップを実行しない限り、 表スペースのどの表のデータも更新または削除できません。 ただし、SELECT ステートメントを使用すれば、 どの表のデータにもアクセス可能です。

リカバリー可能データベース上に COPY NO がある LOAD は、表スペースをバックアップ・ペンディング状態のままにします。 例えば、 COPY NO および INDEXING MODE DEFERRED を指定して LOAD を実行すると、索引のリフレッシュが必要になります。 表での照会には、索引スキャンが必要なものがあり、 索引がリフレッシュされるまで、成功しません。 索引が、バックアップ・ペンディング状態にある表スペース内にある場合、その索引のリフレッシュはできません。 この場合、表へのアクセスは、バックアップが行われるまで許可されません。 索引リフレッシュは、索引が照会によってアクセスされたときに、 データベースによって自動的に行われます。 COPY NOCOPY YES、または NONRECOVERABLE のいずれかが指定されておらず、データベースがリカバリー可能である (logarchmeth1 または logarchmeth2OFF以外の値に設定されている) 場合、 COPY NO がデフォルトです。

COPY YES
ロードするデータのコピーを保存します。 フォワード・リカバリーが使用不可になっている場合、このパラメーターは無効です。
USE TSM
コピーが IBM Tivoli® Storage Managerを使用して保管されることを指定します。
OPEN num-sess SESSIONS
TSM またはベンダー製品とともに使用する入出力セッションの数です。 デフォルト値は 1です。
TO device/directory
コピー・イメージを作成する先の装置またはディレクトリーを指定します。

IBM® Cloud Object Storage や Amazon Simple Storage Service (S3) などのリモート・ストレージ上にあり、ストレージ・アクセス別名を使用してアクセス可能なディレクトリーを指定できます。 リモート・ストレージ・サーバーに転送するコピー・イメージを一時的に格納するためには、ローカル・ステージング・スペースが必要です。 リモート・ストレージの最大コピー・イメージ・サイズとして、現在、5GB がサポートされています。

LOAD lib-name
使用するベンダー・バックアップおよびリストア入出力関数を含む共有ライブラリー (Windows オペレーティング・システム上の DLL) の名前。 絶対パスで指定することができます。 絶対パスを指定しない場合、 デフォルトでユーザー出口プログラムの存在するパスになります。
NONRECOVERABLE
ロード・トランザクションがリカバリー不能としてマークされており、 それ以降のロールフォワード・アクションによってそれをリカバリーさせることは不可能であることを指定します。 ロールフォワード・ユーティリティーはトランザクションをスキップし、データがロードされていた表に invalidのマークを付けます。 さらに、ユーティリティーは、その表に対する後続のすべてのトランザクションを無視します。 ロールフォワード操作が完了すると、そのような表は、ドロップするか、 またはリカバリー不能なロード操作完了後のコミット・ポイントの後に取られたバックアップ (フルバックアップまたは表スペースのバックアップ) からリストアすることのみ可能です。

このオプションを指定すると、表スペースはロード操作後にバックアップ・ペンディング状態になりません。また、 ロードしたデータのコピーをロード操作中に作成する必要はありません。 COPY NOCOPY YES、または NONRECOVERABLE のいずれかが指定されておらず、データベースがリカバリー不能である (logarchmeth1logarchmeth2 の両方が OFFに設定されている) 場合、 NONRECOVERABLE がデフォルトです。

WITHOUT PROMPTING
データ・ファイルのリストにロードするすべてのファイルを含め、 しかもリストに入っている装置またはディレクトリーがロード操作全体で十分であるということを指定します。 続きの入力ファイルが見つからなかったり、 ロード操作が終了する前にコピー先がいっぱいになったりするとロード操作は失敗し、 表は LOAD PENDING 状態のままになります。

このオプションを指定しない場合に、 テープ装置がコピー・イメージ用のテープの終わりに達した場合、 またはリスト中の最後の項目がテープ装置であった場合は、 ユーザーに対してその装置に新しいテープを装着するよう求めるプロンプトが出されます。

DATA BUFFER buffer-size
ユーティリティー内でデータを転送するためのバッファー・スペースとして使用する 4 KB ページの数を指定します (並列処理の度合いには依存しません)。 指定する値がアルゴリズム上の最小値より小さい場合、 最小限必要なリソースが使用され、警告は戻されません。

このメモリーは、ユーティリティー・ヒープから直接割り振られます。ユーティリティー・ヒープのサイズは、util_heap_sz データベース構成パラメーターを使用して変更できます。 バージョン 9.5 から、LOAD コマンド の DATA BUFFER オプションの値は、システムにさらに使用可能メモリーがある場合に、 util_heap_sz を 一時的に超えられるようになりました。 この場合、ユーティリティー・ヒープは、必要に応じて database_memory 限度に達するまで動的に増加します。 このメモリーは、ロード操作が完了すると解放されます。

値が指定されていない場合、実行時にユーティリティーによって適切なデフォルトが計算されます。 デフォルトは、ローダーのインスタンス生成時にユーティリティー・ヒープで使用できるフリー・スペースの割合と、表の一部の特性に基づいて決まります。

SORT BUFFER buffer-size
このオプションでは、ロード操作中に sortheap データベース構成パラメーターをオーバーライドするための値を指定します。 これは、索引とともに表をロードする場合、 また INDEXING MODE パラメーターが DEFERRED として指定されていない場合にのみ関係があります。 sortheap の値を超える値は指定できません。 このパラメーターは、sortheap の値を変更せずに多くの索引を持つ表をロードする際に使用される、ソート・メモリーのスロットルで役に立ちます。 これは、一般的な照会処理にも影響を与えます。
CPU_PARALLELISM n
表オブジェクトの作成時に、レコードの解析、変換、およびフォーマット設定のためにロード・ユーティリティーによって作成されるプロセスまたはスレッドの数を指定します。 このパラメーターは、データベース・パーティションごとに実行するプロセスの数を活用するために設計されています。 これは、事前にソートされたデータをロードする際に役立ちます (ソース・データのレコード順序が保持されるため)。 このパラメーターの値が 0 の場合や、このパラメーターを指定しなかった場合、ロード・ユーティリティーは、実行時に自動的に計算された適切なデフォルト値 (通常は使用できる CPU の数に基づく) を使用します。
注:
  1. LOB または LONG VARCHAR フィールドのどちらかの入った表でこのパラメーターを使用する場合、 システムの CPU の数またはユーザーが指定した値には関係なく、値は 1 になります。
  2. SAVECOUNT パラメーターに指定する値が小さいと、 データと表のメタデータの両方をフラッシュするために、 ローダーがさらに多くの入出力操作を実行することになります。 CPU_PARALLELISM が 1 より大きいなら、 フラッシュ操作は非同期になり、ローダーは CPU を活用できます。 CPU_PARALLELISM が 1 に設定されている場合、 ローダーは整合点において入出力を待ちます。 CPU_PARALLELISM を 2 に設定し、SAVECOUNT10 000 に設定したロード操作は、 CPU が 1 つしかなくても、同じ操作で CPU_PARALLELISM を 1 に設定した場合より速く完了します。
DISK_PARALLELISM n
表スペース・コンテナーにデータを書き込むためにロード・ユーティリティーが作成するプロセスまたはスレッドの数を指定します。 値を指定しない場合、ユーティリティーは表スペース・コンテナーの数と表の特性に基づいて、 自動的に計算された適切なデフォルトを選択します。
INDEXING MODE
ロード・ユーティリティーが索引を再作成するのか、 それとも索引を増分で拡張するのかを指定します。 有効な値は以下のとおりです。
AUTOSELECT
REBUILD モードと INCREMENTAL モードのいずれにするかを、 ロード・ユーティリティーが自動的に決定します。 決定は、ロードされるデータ量と索引ツリーの深さに基づいて行われます。 索引ツリーの深さに関連する情報は索引オブジェクトに保管されています。 この情報を設定するために、RUNSTATS は不要です。 AUTOSELECT がデフォルトの索引付けモードです。
REBUILD
すべての索引が再作成されます。 古い表データの索引キー部分も、 追加される新しい表データの索引キー部分もすべてソートできるようにするため、 ロード・ユーティリティーには十分なリソースが必要となります。

LogIndexBuild データベース構成パラメーターがオンになっている場合、トランザクション・ログには、各索引ページの作成後にそのページのイメージが含まれます。 LogIndexBuild データベース構成パラメーターがオフになっている場合、索引マネージャーがログに記録するのは、各ページの割り振りと初期化のみです (各ページの空ではない部分とは異なり、ページ当たり約 250 バイト)。

INCREMENTAL
索引に新しいデータが取り込まれて拡張します。 このアプローチでは、索引のフリー・スペースが消費されます。 このアプローチでは、 新たに挿入されるレコードの索引キーを追加するためのソート・スペースだけがあれば十分です。 この方式がサポートされるのは、索引オブジェクトが有効で、 かつロード操作の開始時にアクセス可能な場合だけです (例えば、 DEFERRED モードが指定されたロード操作の直後では、この方式は無効です)。 このモードを指定したものの、索引の状態などの理由でサポートされない場合は、 警告が戻され、REBUILD モードでロード操作が続行されます。 同様に、ロード作成フェーズでロード再開操作を開始した場合も、 INCREMENTAL モードはサポートされません。

LogIndexビルド・データベース構成パラメーターがオンになっている場合、 Db2 ソフトウェアは、実行されたページ分割だけでなく、索引にすべてのキーを挿入するためのログ・レコードを生成します。 このパラメーターがオフになっている場合 (HADR を使用していない場合に一般的)、索引マネージャーによって実行される索引ロギングの量は、ALLOW READ ACCESS オプションが指定されたかどうかに応じて異なります。 ALLOW READ ACCESS オプションが指定されている場合、ページ分割に関するログを含んだログ・レコードが生成されます。 ALLOW READ ACCESS オプションが指定されていない場合、索引マネージャーからのログ・レコードは生成されません。

DEFERRED
このモードが指定されている場合、ロード・ユーティリティーは索引の作成を試みません。 リフレッシュが必要であることを示すマークが索引に付けられます。 ロード操作とは関係のないこのような索引に最初にアクセスするときは、 再作成が強制的に実行されたり、 データベースの再始動時に索引が再作成されたりする場合があります。 このアプローチでは、 最も大きい索引のキー部分をすべて処理できるだけのソート・スペースが必要です。 索引を作成するためにその後かかる合計時間は、REBUILD モードの場合よりも長くなります。 したがって、この索引作成据え置きモードで複数のロード操作を実行する場合、 最初の非ロード・アクセス時に索引を再作成できるようにしておくよりも、 順序列内の最後のロード操作で索引の再作成を実行できるようにした方が (パフォーマンスの観点から) 賢明であるといえます。

据え置き索引作成がサポートされるのは、非ユニーク索引がある表だけです。そのため、 ロード・フェーズで挿入される重複キーがロード操作後は永続的ではなくなります。

ALLOW NO ACCESS
ロードを使用すると、ロード中に、 排他的アクセスのためにターゲット表がロックされます。 ロード中、表の状態は LOAD IN PROGRESS に設定されます。 ALLOW NO ACCESS はデフォルトの動作です。 これは、LOAD REPLACE で唯一有効なオプションです。

表に制約があると、表の状態は、 ロード中の他に、SET INTEGRITY ペンディングに設定されます。 表の SET INTEGRITY ペンディング状態を解除するには、SET INTEGRITY ステートメントを使用する必要があります。

ALLOW READ ACCESS
ロードを使用すると、ターゲット表は共有モードでロックされます。 表の状態は、LOAD IN PROGRESS および READ ACCESS の両方に設定されます。 表のロード中、データの非デルタ部分にアクセスすることができます。 つまり、表を読み取る側はロードの開始前に存在していたデータにはアクセスができ、 ロード中のデータはロードが完了するまで利用できない、ということです。
重要: LOAD コマンドの ALLOW READ ACCESS パラメーターは推奨されておらず、将来のリリースで除去される可能性があります。 LOAD コマンドの ALLOW READ ACCESS パラメーターが廃止される前に、 INGEST ユーティリティー の使用を開始します。 さらに、INGEST ユーティリティーをコマンド・スクリプトで使用することができます。

ALLOW READ ACCESS パラメーターは、 カラム・オーガナイズ 表ではサポートされません。

ALLOW READ ACCESS ロードの LOAD TERMINATE または LOAD RESTART は、このパラメーターを使用できます。 ALLOW NO ACCESS ロードの LOAD TERMINATE または LOAD RESTART は、このパラメーターを使用できません。 また、ターゲット表上の索引が要再作成のマークが付けられると、 このオプションは無効になります。

表に制約があると、表の状態は、LOAD IN PROGRESS、および READ ACCESS の他に、SET INTEGRITY PENDING に設定されます。 ロードの終了時に、表の状態 LOAD IN PROGRESS は解除されますが、SET INTEGRITY PENDING および READ ACCESS はそのまま残ります。 表の SET INTEGRITY PENDING を解除するには、SET INTEGRITY ステートメントを使用する必要があります。 表が SET INTEGRITY PENDING および READ ACCESS の状態にある間、 データの非デルタ部分には引き続き読み取りアクセスできますが、データの新しい (デルタ) 部分には、 SET INTEGRITY ステートメントが完了するまでアクセス不能のままになります。 ユーザーは、SET INTEGRITY ステートメントを発行しないで、同じ表上で複数のロードを実行できます。 ただし、元の (チェック済み) データは、 SET INTEGRITY ステートメントが発行されるまで可視のままです。

ALLOW READ ACCESS は、以下の修飾子もサポートします。
USE tablespace-name
索引が再作成される場合、 表スペース tablespace-name に索引のシャドー・コピーが作成され、 ロード終了時の INDEX COPY PHASE で、元の表スペース上にコピーされます。 SYSTEM TEMPORARY 表スペースのみ、このオプションを使用できます。 指定されない場合、シャドー索引が、索引オブジェクトと同じ表スペース内に作成されます。 シャドー・コピーが索引オブジェクトと同じ表スペース内に作成される場合、 古い索引オブジェクトを介したシャドー索引オブジェクトのコピーは瞬時に終了します。 シャドー・コピーが索引オブジェクトとは異なる表スペースにある場合、物理コピーが実行されます。 これにはかなりの入出力および時間を要します。 コピーは、表がオフラインの間、 ロード終了時の INDEX COPY PHASE で行われます。

このオプションを使用しないと、シャドー索引は元の索引と同じ表スペースに作成されます。 デフォルトでは、元の索引とシャドー索引の両方が同時に同じ表スペースに常駐するため、 1 つの表スペース内に両方の索引を保持するためのスペースが不足する場合があります。 このオプションを使用すれば、索引用の十分な表スペースを保持できます。

ユーザーが INDEXING MODE REBUILD または INDEXING MODE AUTOSELECT を指定しないと、このオプションは無視されます。 INDEXING MODE AUTOSELECT が選択され、ロードによって索引の増分更新が選択された場合にも、このオプションは無視されます。

FETCH_PARALLELISM YES | NO
DATABASE キーワードを使用してカーソルが宣言されていてカーソルからのロードを実行するとき、または API の sqlu_remotefetch_entry メディア項目を使用するとき、このオプションが YES に設定されていると、ロード・ユーティリティーは、リモート・データ・ソースからのフェッチの並列化を試みます (可能な場合)。 現時点では、データ・フェッチを並列化できるのは、カーソルの select ステートメントが単純形式 "SELECT * FROM <tablename>" である場合のみです。 NO に設定されている場合、並列フェッチは行われません。 デフォルト値は YES です。 詳しくは、CURSOR ファイル・タイプを使用したデータの移動を参照してください。
SET INTEGRITY PENDING CASCADE
LOAD が表を SET INTEGRITY PENDING 状態にする場合、 SET INTEGRITY PENDING CASCADE オプションにより、ユーザーは、ロードされた表の SET INTEGRITY ペンディング状態をすべての子孫 (下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表を含む) に即時にカスケードするかどうかを指定できます。
IMMEDIATE
外部キー制約の SET INTEGRITY PENDING 状態が即時にすべての下層外部キー表、下層即時マテリアライズ照会表、および下層ステージング表に拡張されることを示します。 LOAD INSERT 操作の場合、IMMEDIATE オプションが指定されている場合でも、 SET INTEGRITY PENDING 状態は下層外部キー表に拡張されません。

後で (SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションを使用して) ロードされる表の制約違反をチェックする際、SET INTEGRITY PENDING READ ACCESS 状態だった下層外部キー表は、SET INTEGRITY PENDING NO ACCESS 状態になります。

DEFERRED
ロードされる表だけが、SET INTEGRITY PENDING 状態になることを示します。 下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表は、 未変更のままになります。

下層外部キー表は、(SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションを使用して) その親表の制約違反がチェックされるとき、後で暗黙的に SET INTEGRITY PENDING 状態になる場合があります。 下層即時マテリアライズ照会表および下層即時ステージング表は、 その基礎表のいずれかの保全性違反がチェックされる際、 暗黙的に SET INTEGRITY PENDING 状態になります。 照会のアクセス先が、指定された表ではなく、SET INTEGRITY PENDING 状態にない適格なマテリアライズ照会表である場合は、SET INTEGRITY PENDING 状態の表の照会が成功することがあります。 下層表が SET INTEGRITY ペンディング状態になったことを示す警告 (SQLSTATE 01586) が出されます。 これらの子孫表がいつ SET INTEGRITY ペンディング状態になるかについては、SET INTEGRITY ステートメントの セクションを参照してください。

SET INTEGRITY PENDING CASCADE オプションが指定されない場合、次のようになります。

  • ロードされる表だけが、SET INTEGRITY PENDING 状態になります。 下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表の状態は未変更のままになり、後にロードされた表の制約違反がチェックされる際に、暗黙的に SET INTEGRITY PENDING 状態になる場合があります。

LOAD がターゲット表を SET INTEGRITY ペンディング状態にしない場合、 SET INTEGRITY PENDING CASCADE オプションは無視されます。

LOCK WITH FORCE
ユーティリティーはロード・プロセス中に、表ロックなどの様々なロックを獲得します。 ロックを獲得する際、このオプションを使用すると、 ロードは待機することなく、またタイムアウトになることなく、 ターゲット表に競合するロックを持つ他のアプリケーションを強制的にオフにします。 システム・カタログ表に対する競合するロックを保持するアプリケーションは、 ロード・ユーティリティーによって強制的にオフにされることはありません。 強制されたアプリケーションは、 ロールバックし、ロード・ユーティリティーが必要とするロックをリリースします。 その後、ロード・ユーティリティーを続行できます。 このオプションは、FORCE APPLICATIONS コマンドと同じ権限 (SYSADM、SYSCTRL、または SYSMAINT) を必要とします。

ALLOW NO ACCESS ロードは、ロード操作の開始時に競合するロックを持つアプリケーションを強制的にロールバックさせる場合があります。 ロード操作の開始時に、このユーティリティーは、 表の照会または変更を試みているアプリケーションを強制終了させることがあります。

ALLOW READ ACCESS ロードは、ロード操作の開始時または終了時に、競合するロックを保持しているアプリケーションを強制的に実行することができます。 ロード操作の開始時に、ロード・ユーティリティーは、 表の変更を試みているアプリケーションを強制的にロールバックさせる場合があります。 ロード操作の終了時に、ロード・ユーティリティーは、 表の照会または変更を試みているアプリケーションを強制的にロールバックさせる場合があります。

SOURCEUSEREXIT executable
ユーティリティーにデータを送るために呼び出す実行可能ファイルの名前を指定します。

SOURCEUSEREXIT パラメーターは、 カラム・オーガナイズ 表ではサポートされません。

REDIRECT
INPUT FROM
BUFFER input-buffer
input-buffer で指定されたバイトのストリームが、所定の実行可能ファイルを実行するプロセスの STDIN ファイル記述子に渡されます。
FILE input-file
このクライアント・サイドのファイルの内容が、所定の実行可能ファイルを実行するプロセスの STDIN ファイル記述子に渡されます。
OUTPUT TO
FILE output-file
STDOUT および STDERR ファイル記述子が、指定した完全修飾されたサーバー・サイドのファイルに取り込まれます。
PARALLELIZE
複数のユーザー出口プロセスを同時に呼び出すことによって、ロード・ユーティリティーへのデータ入力のスループットを高めます。 このオプションは、複数パーティション・データベース環境でのみ適用でき、単一パーティション・データベース環境では無視されます。
詳しくは、カスタマイズ・アプリケーション (ユーザー出口) を使用したデータの移動を参照してください。
PARTITIONED DB CONFIG partitioned-db-option
複数のデータベース・パーティションに分散した表へのロードの実行を可能にします。 PARTITIONED DB CONFIG パラメーターを使用すると、 パーティション・データベース固有の構成オプションを指定することができます。 partitioned-db-option の値は、以下のオプションのいずれかになります。
PART_FILE_LOCATION x
OUTPUT_DBPARTNUMS x
PARTITIONING_DBPARTNUMS x
MODE x
MAX_NUM_PART_AGENTS x
ISOLATE_PART_ERRS x
STATUS_INTERVAL x
PORT_RANGE x
CHECK_TRUNCATION
MAP_FILE_INPUT x
MAP_FILE_OUTPUT x
TRACE x
NEWLINE
DISTFILE x
OMIT_HEADER
RUN_STAT_DBPARTNUM x
これらのオプションについて詳しくは、 パーティション・データベース環境のロード構成オプションを参照してください。
RESTARTCOUNT
非推奨。
USING directory
非推奨。

例 1

TABLE1 には、以下の 5 つの列があります。
  • COL1 VARCHAR 20 NOT NULL WITH DEFAULT
  • COL2 SMALLINT
  • COL3 CHAR 4
  • COL4 CHAR 2 NOT NULL WITH DEFAULT
  • COL5 CHAR 2 NOT NULL
ASCFILE1 に以下の 7 つのエレメントがあるとします。
  • ELE1、位置 01 から 20
  • ELE2、位置 21 から 22
  • ELE3、位置 23 から 23
  • ELE4、位置 24 から 27
  • ELE5、位置 28 から 31
  • ELE6、位置 32 から 32
  • ELE7、位置 33 から 40
データ・レコード:
1...5....10....15....20....25....30....35....40
Test data 1         XXN 123abcdN
Test data 2 and 3   QQY    wxyzN
Test data 4,5 and 6 WWN6789    Y
以下に示すコマンドで、ファイルから表をロードします。
db2 load from ascfile1 of asc modified by striptblanks reclen=40
   method L (1 20, 21 22, 24 27, 28 31)
   null indicators (0,0,23,32)
   insert into table1 (col1, col5, col2, col3)
注:
  1. MODIFIED BY パラメーターに striptblanks を指定すると、VARCHAR 列のブランクの切り捨てが強制されます (COL1。例えば、11、17、および 19 バイトの長さで、行 1、2、および 3 になります)。
  2. MODIFIED BY パラメーターで reclen=40 を指定すると、 各入力レコードの最後が改行文字でなく、 各レコードが 40 バイト長であることを指定することになります。 最後の 8 バイトは、表のロードには使用されません。
  3. COL4 は入力ファイルにはないので、 そのデフォルト値 (NOT NULL WITH DEFAULT と定義されている) を使用して TABLE1 に挿入されます。
  4. 位置 23 および 32 は、TABLE1 の COL2 と COL3 に NULL をロードするかどうかを 行ごとに示すために使用されます。 指定レコードの列の NULL 標識位置にYがある場合、その列はNULL になります。 Nがある場合、入力レコードの列のデータ位置にあるデータ値(L (........)に定義)が、行の列データのソースとして使用されます。 この例では、行 1 のどの列も NULL ではなく、 行 2 の COL2 は NULL であり、行 3 の COL3 は NULL です。
  5. この例では、COL1 と COL5 の NULL INDICATORS は 0 (ゼロ) として指定されますが、 それはそのデータを NULL 不可能であることを示しています。
  6. 特定の列のNULL INDICATORは、入力レコードの任意ロケーションに指定できますが、その位置を指定しなければなりません。YまたはN の値を指定しなければなりません。

例 2 (ファイルから LOB をロードする)

TABLE1 に次の 3 つの列があるとします。
  • COL1 CHAR 4 NOT NULL WITH DEFAULT
  • LOB1 LOB
  • LOB2 LOB
ASCFILE1 には次の 3 つのエレメントがあるとします。
  • ELE1、位置 01 から 04
  • ELE2、位置 06 から 13
  • ELE3、位置 15 から 22
次に示すファイルは、 /u/user1 または /u/user1/bin のどちらかにあります。
  • ASCFILE2 - LOB データを持つ
  • ASCFILE3 - LOB データを持つ
  • ASCFILE4 - LOB データを持つ
  • ASCFILE5 - LOB データを持つ
  • ASCFILE6 - LOB データを持つ
  • ASCFILE7 - LOB データを持つ
ASCFILE1 内のデータ・レコード
1...5....10...15...20...25...30.
REC1 ASCFILE2 ASCFILE3
REC2 ASCFILE4 ASCFILE5
REC3 ASCFILE6 ASCFILE7
以下に示すコマンドで、ファイルから表をロードします。
db2 load from ascfile1 of asc
   lobs from /u/user1, /u/user1/bin
   modified by lobsinfile reclen=22
   method L (1 4, 6 13, 15 22)
   insert into table1
注:
  1. MODIFIED BY パラメーターに lobsinfile を指定すると、すべての LOB データがファイルからロードされることがローダーに通知されます。
  2. MODIFIED BY パラメーターで reclen=22 を指定すると、 各入力レコードの最後が改行文字でなく、 各レコードが 22 バイト長であることを指定することになります。
  3. LOB データは、ASCFILE2 から ASCFILE7 までの 6 つのファイルに入っています。 各ファイルには、 特定の行の LOB 列をロードするのに使用されるデータが入れられています。 LOB と他のデータのリレーションシップは、ASCFILE1 に指定します。 このファイルの最初のレコードは、REC1 を行 1 の COL1 にするようローダーに指示します。 ASCFILE2 の内容は行 1 の LOB1 をロードするために使用され、 ASCFILE3 の内容は行 1 の LOB2 をロードするために使用されます。 同様に、 ASCFILE4 および ASCFILE5 は行 2 の LOB1 および LOB2 をロードするために使用され、 ASCFILE6 および ASCFILE7 は行 3 の LOB をロードするために使用されます。
  4. これらのファイルがローダーで必要になった場合には、 名前の指定された LOB ファイルを探索するのに使われる 2 つのパスが、 LOBS FROM パラメーターに入っています。
  5. lobsinfile 修飾子を指定しないで ASCFILE1 (区切りなしの ASCII ファイル) から直接 LOB をロードする場合は、 以下の規則を守ってください。
    • LOB を含めたレコードの全長は 32 KB 以下でなければなりません。
    • 入力レコード内の LOB フィールドは固定長でなければならず、 必要なら LOB データにブランクを埋め込まなければなりません。
    • LOB をデータベースに挿入する際に、 LOB の埋め込みに使われる後続ブランクを除去できるよう、 striptblanks 修飾子を指定する必要があります。

例 3 (ダンプ・ファイルの使用)

表 FRIENDS は以下のように定義されています。
table friends "( c1 INT NOT NULL, c2 INT, c3 CHAR(8) )"
この表に対して、以下に示すデータ・レコードのロードを試みたとします。
23, 24, bobby
, 45, john
4,, mary

第 2 行は最初の INT が NULL であり、列定義では NOT NULL が指定されているためにリジェクトされます。 DEL フォーマットと互換でない開始文字の入った列は、エラーを生成し、 レコードはリジェクトされます。 そのようなレコードはダンプ・ファイルに書き込まれます。

区切り文字の外側の列の中にある DEL データは無視されますが、警告が生成されます。 以下に例を示します。
22,34,"bob"
24,55,"sam" sdf
ユーティリティーは、表の 3 番目の列に samをロードし、 sdfという文字に警告のフラグを立てます。 このレコードはリジェクトされません。 別の例を以下に示します。
22 3, 34,"bob"

ユーティリティは22,34,"bob"をロードし、 22次の列1の一部のデータが無視されたという警告を生成します。 このレコードはリジェクトされません。

例 4 (ID 列がある表へのロード)

TABLE1 には、以下の 4 つの列があります。
  • C1 VARCHAR(30)
  • C2 INT GENERATED BY DEFAULT AS IDENTITY
  • C3 DECIMAL(7,2)
  • C4 CHAR(1)

TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS ID 列である点が異なります。

DATAFILE1 内のデータ・レコード (DEL フォーマット):
"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I
DATAFILE2 内のデータ・レコード (DEL フォーマット):
"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
注:
  1. 以下のコマンドでは、 行 1 および 2 の ID 値が生成されます。 これは、DATAFILE1 内にこれらの行の ID 値が存在しないためです。 ただし、行 3 にはユーザー提供の ID 値 100 が、行 4 にはユーザー提供の ID 値 101 がそれぞれ割り当てられます。
    db2 load from datafile1.del of del replace into table1
  2. DATAFILE1 を TABLE1 にロードして、 すべての行の ID 値が生成されるようにするには、 以下のコマンドのいずれかを発行してください。
    db2 load from datafile1.del of del method P(1, 3, 4)
       replace into table1 (c1, c3, c4)
    db2 load from datafile1.del of del modified by identityignore
       replace into table1
  3. DATAFILE2 を TABLE1 にロードして、 それぞれの行ごとに ID 値が生成されるようにするには、 以下のコマンドのいずれかを発行してください。
    db2 load from datafile2.del of del replace into table1 (c1, c3, c4)
    db2 load from datafile2.del of del modified by identitymissing
       replace into table1
  4. DATAFILE1 を TABLE2 にロードして、 ID 値である 100 および 101 が行 3 および 4 にそれぞれ割り当てられるようにするには、 以下のコマンドを発行してください。
    db2 load from datafile1.del of del modified by identityoverride
       replace into table2
    この場合、行 1 および 2 はリジェクトされます。 これは、ユーティリティーへの指示により、 ユーザー提供の値を優先し、 システムが生成した ID 値をオーバーライドするようになっているためです。 ユーザー提供の値が存在しない場合でも、 ID 列が暗黙的に非 NULL であるため、この行はリジェクトする必要があります。
  5. 識別に関係するファイル・タイプ修飾子を使用せずに DATAFILE1 を TABLE2 にロードすると、 行 1 と 2 はロードされますが、 行 3 と 4 はリジェクトされます。 これは、行 3 と 4 では独自に非 NULL 値が提供されており、 ID 列が GENERATED ALWAYS であるためです。

例 5 (ROW CHANGE TIMESTAMP 列がある表へのロード)

TABLE1 には、以下の 4 つの列があります。

  • C1 VARCHAR(30)
  • C2 ROW CHANGE TIMESTAMP GENERATED BY DEFAULT
  • C3 DECIMAL(7,2)
  • C4 CHAR(1)

TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS 列である点が異なります。

DATAFILE1 内のデータ・レコード (DEL フォーマット):

"Liszt"
"Hummel",,187.43, H
"Grieg", 2006-05-23-15.55.53.209971, 66.34, G
"Satie", 2006-05-22-19.34.14.947681, 818.23, I

DATAFILE2 内のデータ・レコード (DEL フォーマット):

"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
注:
  1. 以下のコマンドは、DATAFILE1 で行 1 および 2 への ROW CHANGE TIMESTAMP 値が入力されていないので、それらの行のための ROW CHANGE TIMESTAMP 値を生成します。 ただし、行 3 および 4 は、ユーザー提供の ROW CHANGE TIMESTAMP 値 2006-05-23-15.55.53.2099712006-05-22-19.34.14.947681 が割り当てられます。
    db2 load from datafile1.del of del replace
    into table1
  2. DATAFILE1 を TABLE1 にロードしてすべての行に対する ROW CHANGE TIMESTAMP 値を生成するには、以下のコマンドのいずれかを発行します。
    db2 load from datafile1.del of del method P(1, 3, 4) replace into table1
     (c1, c3, c4)
    
    db2 load from datafile1.del of del modified by rowchangetimestampignore
     replace into table1
    
  3. DATAFILE2 を TABLE1 にロードして各行に対する ROW CHANGE TIMESTAMP 値を生成するには、以下のコマンドのいずれかを発行します。
    db2 load from datafile2.del of del replace into table1 (c1, c3, c4)
    
    db2 load from datafile2.del of del modified by rowchangetimestampmissing
     replace into table1
    
  4. DATAFILE1 を TABLE2 にロードして、2006-05-23-15.55.53.209971 および 2006-05-22-19.34.14.947681 の ROW CHANGE TIMESTAMP 値を行 3 および 4 に割り当てるには、以下のコマンドを発行します。
    db2 load from datafile1.del of del modified by rowchangetimestampoverride
     replace into table2

    この場合、ユーティリティーには、ユーザー提供の値を優先して、 システム生成の ROW CHANGE TIMESTAMP 値に上書きするように指示しているため、行 1 および 2 はリジェクトされます。 ユーザー提供の値が存在しない場合でも、ROW CHANGE TIMESTAMP 列が暗黙的に非 NULL であるため、この行はリジェクトする必要があります。

  5. ROW CHANGE に関係するファイル・タイプ修飾子を使用せずに DATAFILE1 を TABLE2 にロードすると、 行 1 と 2 はロードされますが、行 3 と 4 はリジェクトされます。 これは、行 3 と 4 では独自に非 NULL 値が提供されており、ROW CHANGE TIMESTAMP 列が GENERATED ALWAYS であるためです。

例 6 (CURSOR ファイル・タイプを使用したロード)

ABC.TABLE1 には次の 3 つの列があります。
ONE INT
TWO CHAR(10)
THREE DATE
ABC.TABLE2 には次の 3 つの列があります。
ONE VARCHAR
TWO INT
THREE DATE
以下のコマンドを実行すると、 すべてのデータが ABC.TABLE1 から ABC.TABLE2 にロードされます。
db2 declare mycurs cursor for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2
ABC.TABLE1 が、ABC.TABLE2 のあるデータベースとは異なるデータベースにある場合、DECLARE CURSOR ステートメントの DATABASEUSER、および USING オプションを使用してロードを実行することができます。 例えば、ABC.TABLE1 がデータベース DB1 にあり、DB1 のユーザー ID およびパスワードが user1 および pwd1 である場合、以下のコマンドを実行すると、すべてのデータが ABC.TABLE1 から ABC.TABLE2 にロードされます。
db2 declare mycurs cursor database DB1 user user1 using pwd1
   for select two,one,three from abc.table1
db2 load from mycurs of cursor insert into abc.table2

例 : XML データのロード

ユーザーは、表に挿入される文書を記述するために、XDS フィールドを持つデータ・ファイルを構成しました。 内容は以下のとおりです。

1, "<XDS FIL=""file1.xml"" />"
2, "<XDS FIL='file2.xml' OFF='23' LEN='45' />"

最初の行では、XML 文書は file1.xmlという名前のファイルによって識別されます。 区切り文字は二重引用符であり、二重引用符は XDS の内側にあるため、XDS 内にある二重引用符は二重になります。 2 番目の行では、XML 文書は file2.xml というファイルで示され、バイト・オフセット 23 で始まります。長さは 45 バイトです。

ユーザーは、XML 列の構文解析または妥当性検査オプションを指定しないでロード・コマンドを発行し、データは正常にロードされました。
LOAD
FROM data.del of DEL INSERT INTO mytable

例 : カーソルからの XML データのロード

データをカーソルからロードすることは、正規のリレーショナル列タイプを使用する場合と同じです。 ユーザーは 2 つの表、T1 および T2 を持っており、それぞれは C1 という単一の XML 列で構成されます。 T1 から T2 にロードするには、ユーザーは最初に次のようにカーソルを宣言します。

DECLARE
X1 CURSOR FOR SELECT C1 FROM T1;

その後、ユーザーは次のようにカーソル・タイプを使用して LOAD を発行できます。

LOAD FROM X1 of
CURSOR INSERT INTO T2

カーソル・タイプに XML 固有の LOAD オプションを適用する操作は、ファイルからロードする場合と同じです。

XMLVALIDATE 節の使用例

XMLVALIDATE USING XDS
  • ユーザーは、XDS で示されたスキーマに従って妥当性検査を行いたいと思います。 SCH 属性を指定しない XDS 値がある場合、それらの文書はこの節で使用されるスキーマによって妥当性検査されます。

    XMLVALIDATE
    USING XDS DEFAULT S1.SCHEMA_B
  • ユーザーは妥当性検査を行いたいと思いますが、XDS で言及されている特定のスキーマは無視します。

    XMLVALIDATE USING XDS IGNORE S1.SCHEMA_C
  • ユーザーは妥当性検査を行いたいと思いますが、XDS 内のいくつかのスキーマを再マップします。
    XMLVALIDATE USING XDS MAP(  (S1.SCHEMA_A,
    S2.SCHEMA_B ), (S3.SCHEMA_C, S5.SCHEMA_E) )

    上述の XDS の場合、SCH 属性が S1.SCHEMA_A である文書は、S2.SCHEMA_B に対して妥当性検査されます。 また、SCH 属性が S3.SCHEMA_C である文書は、S5.SCHEMA_E に対して妥当性検査されます。

  • ユーザーは、DEFAULTIGNOREMAP の各オプションを組み合わせて使用します。
    XMLVALIDATE USING XDS
      DEFAULT S8.SCHEMA_H
      IGNORE (S9.SCHEMA_I, S10.SCHEMA_J)
      MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S3.SCHEMA_C, S5.SCHEMA_E),
        (S6.SCHEMA_F, S3.SCHEMA_C), (S4.SCHEMA_D, S7.SCHEMA_G))
    • XML 列に以下の XDS が含まれているとすると、
      <XDS FIL='xmlfile.001.xml' />
      使用するデフォルト・スキーマとして「S8.SCHEMA_H」が指定されているため、SQL ID「S8.SCHEMA_H」を持つ XML スキーマを使用して、ファイル xmlfile.001.xml内の文書を妥当性検査します。
    • XML 列に以下の XDS が含まれているとすると、
      <XDS FIL='xmlfile.002.xml' OFF='10' LEN='500' SCH='S10.SCHEMA_J' />
      XDS は使用するスキーマとして「S10.SCHEMA_J」を指定していますが、そのスキーマは IGNORE 節の一部であるため、ファイル xmlfile.002.xml内の文書に対してスキーマ妥当性検査は行われません。 文書の内容はファイル中のバイト・オフセット 10 (11 番目のバイト) にあり、その長さは 500 バイトです。
    • XML 列に以下の XDS が含まれているとすると、
      <XDS FIL='xmlfile.003.xml' SCH='S6.SCHEMA_F' />
      SQL ID「S3.SCHEMA_C」を持つ XML スキーマは、ファイル xmlfile.003.xml内の文書の妥当性検査に使用されます。 これは、 MAP 節が、スキーマ "S6.SCHEMA_F" をスキーマ "S3.SCHEMA_C" にマップすることを指定しているためです。 それ以外のマッピングは実行されないため、この場合、スキーマ "S3.SCHEMA_C" からスキーマ "S5.SCHEMA_E" へのマッピングは適用されません。
    • XML 列に以下の XDS が含まれているとすると、
      <XDS FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />
      SQL ID「S11.SCHEMA_K」を持つ XML スキーマは、ファイル xmlfile.004.xml内の文書の妥当性検査に使用されます。 この場合、DEFAULTIGNORE、 または MAP の指定のいずれも適用されません。
XMLVALIDATE USING SCHEMA
ユーザーは、単一の SCHEMA に従ってすべての XML 文書の妥当性検査を行いたいと思います。 以下の XMLVALIDATE 節の場合、
XMLVALIDATE USING SCHEMA S2.SCHEMA_B
  • XML 列に以下の XDS が含まれているとすると、
    <XDS FIL='xmlfile.001.xml' />
    ファイル xmlfile.001.xml 内の文書は、SQL ID「S2.SCHEMA_B」を持つ XML スキーマを使用して妥当性検査されます。
  • XML 列に以下の XDS が含まれているとすると、
    <XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
    ファイル xmlfile.002.xml 内の文書は、SQL ID「S2.SCHEMA_B」を持つ XML スキーマを使用して妥当性検査されます。 USING SCHEMA 節で指定されたスキーマを使用して妥当性検査が実行されるため、SCH 属性は無視されます。
XMLVALIDATE USING SCHEMALOCATION HINTS

ユーザーは、文書そのものの中にあるスキーマ情報に従って妥当性検査を行いたいと思います。 以下の XMLVALIDATE 節の場合、

XMLVALIDATE
USING SCHEMALOCATION HINTS
  • XML 列に以下の XDS が含まれているとすると、
    <XDS FIL='xmlfile.001.xml' />
    使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。 その属性が指定されていない場合、妥当性検査は実行されません。
  • XML 列に以下の XDS が含まれているとすると、
    <XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
    使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。 その属性が指定されていない場合、妥当性検査は実行されません。 検証は SCHEMALOCATION HINTSを使用して実行されるため、SCH 属性は無視されます。

使用上の注意

  • データは、入力ファイル内に並んでいる順序でロードされます。 特定の順序にしたい場合には、ロードが試行される前にデータをソートしてください。 ソース・データの順序を保持する必要がない場合は、以下の「 ロード・ユーティリティーのファイル・タイプ修飾子 」セクションで説明されている ANYORDER ファイル・タイプ修飾子を使用することを検討してください。
  • ロード・ユーティリティーは、既存の定義に基づいて索引を作成します。 ユニーク・キーの重複を処理するのに、例外表が使用されます。 ユーティリティーは、参照整合性を強制したり、制約検査を実行したり、ロードする表に従属するマテリアライズ照会表を更新したりすることはありません。 参照制約またはチェック制約を含む表は、SET INTEGRITY ペンディング状態になります。 REFRESH IMMEDIATE として定義されているサマリー表、 およびロードする表に依存するサマリー表もまた、SET INTEGRITY ペンディング状態になります。 これらの表に関して、SET INTEGRITY ペンディング (Set Integrity Pending) 状態を解除するには、SET INTEGRITY ステートメントを発行してください。 ロード操作は、複製されたマテリアライズ照会表では実行できません。
  • クラスタリング索引が表に存在する場合、ロード前にクラスタリング索引でデータをソートしてください。 ただし、データはマルチディメンション・クラスタリング (MDC) 表にロードする前にソートする必要はありません。
  • 保護された表へのロード時に例外表を指定すると、無効なセキュリティー・ラベルで保護されている行がその表に送られます。 そのため、例外表にアクセスできるユーザーは、通常はアクセス権限のないデータにアクセスできてしまう可能性があります。 セキュリティー・レベルを上げるために、誰に例外表アクセス権限を付与するかに注意し、行が修復されてロードする表にコピーされたら直ちにそれぞれの行を削除するとともに、使い終えた例外表は直ちにドロップしてください。
  • 内部形式のセキュリティー・ラベルには、改行文字が含まれている可能性があります。 DEL ファイル形式を使用するファイルをロードする場合、この改行文字が区切り文字と間違われることがあります。 この問題が発生した場合は、 LOAD コマンドで delprioritychar ファイル・タイプ修飾子を指定して、区切り文字に古いデフォルトの優先順位を使用してください。
  • DECLARE CURSOR ステートメントの実行中に指定した DATABASE キーワードが CURSOR ファイル・タイプを使用してロードを実行する場合、現在接続されているデータベース (ロード用) の認証に使用されるユーザー ID およびパスワードが (DECLARE CURSOR ステートメントの DATABASE オプションによって指定された) ソース・データベースの認証に使用されます。 ユーザー ID またはパスワードがロード・データベースの接続に指定されない場合、ソース・データベースのユーザー ID とパスワードは DECLARE CURSOR ステートメントの実行中に指定する必要があります。
  • 個々のパーツが Windows システムから AIX® システムにコピーされる、複数パーツの PC/IXF ファイルのロードがサポートされています。 すべてのファイルの名前は、LOAD コマンドで指定する必要があります。 例えば、LOAD FROM DATA.IXF, DATA.002 OF IXF INSERT INTO TABLE1などです。 論理的に分割された PC/IXF ファイルから Windows オペレーティング・システムへのロードはサポートされていません。
  • 失敗した LOAD を再始動する場合、その動作は、BUILD フェーズで索引用に REBUILD モードの使用が強制されるという点で、既存の動作に従います。
  • COPY YES オプションが使用されている場合、ロード・ユーティリティーはイメージ・ファイルの非常に大きなコピーを生成することがあります。 この動作が予期されるのは、LOAD コマンドが、ロードされる LOB/LF 列値ごとにデータのバッファー全体をすべてコピー・イメージに書き出すときです。 バッファーは内部オブジェクトであり、そのサイズはいくつかの内部要因および外部要因によって決まります。 一般的に、バッファー・サイズは 68 KB から数百 KB の間です。
  • データベース間での XML 文書のロードはサポートされておらず、エラー・メッセージ SQL1407N が戻されます。
  • LOAD ユーティリティーでは、fenced プロシージャーを参照する列を含む表へのロードはサポートされていません。 このような表に対して LOAD コマンドを発行すると、エラー・メッセージ SQL1376N を受け取ります。 この制約事項に対処するには、ルーチンを unfenced に再定義するか、インポート・ユーティリティーを使用することができます。
  • ユーザー定義関数がコンパイル済みコンパウンド SQL である生成列式が表に含まれている場合、 generatedoverride ファイル・タイプ修飾子を指定した LOAD ユーティリティーのみを使用して、表にデータを挿入できます。 これらの表には、インポート・ユーティリティーを使用してデータを挿入することもできます。
  • 暗黙的な非表示列がデータベース表に含まれる場合には、ロード操作に非表示列のデータを含めるかどうかを指定する必要があります。
  • IMPORT ユーティリティーは、表内の列数とデータ・ファイル内のフィールド数の突き合わせを行いません。 このユーティリティーは、データ・ファイル内に十分な量のデータがあるかどうかをチェックします。データ・ファイル内の行に十分なデータ列が含まれていない場合、その行は拒否されて警告メッセージが表示される (表の対応するデータのない列が NOT NULL として定義されている場合) か、警告メッセージは表示されずに正常に挿入されます (表の対応する列が NULL として定義されている場合)。 代わりに、 行に必要な数より多くの列が含まれている場合、必要な数の列が処理され、残りのデータ列は省略されます。警告メッセージは表示されません。
  • STATISTICS オプションは、LOAD REPLACE オプションにおいてのみ作動し、その他の LOAD コマンド・オプションでは作動しません。
  • COPY YES オプションを指定した LOAD ユーティリティーが使用され、表に LOB 列が含まれている場合、LOB 列が NOT COMPACT で定義されていても、LOAD は常に COMPACT 動作を強制します。

LOAD TERMINATE および LOAD RESTART ディクショナリー管理の要約

以下の表は、 TERMINATE ディレクティブでの LOAD 処理のコンプレッション・ディクショナリー管理の動作を要約しています。

表 3. LOAD TERMINATE ディクショナリー管理
表の COMPRESS 属性 LOAD 前に表の行データ・ディクショナリーが存在したかどうか LOAD 前に XML ストレージ・オブジェクト・ディクショナリーが存在する1 TERMINATE: LOAD REPLACE KEEPDICTIONARY または LOAD INSERT TERMINATE: LOAD REPLACE RESETDICTIONARY
はい はい はい 既存のディクショナリーを保持します。 どちらのディクショナリーも保持しません。 2
はい はい いいえ 既存のディクショナリーを保持します。 何も保持しません。 2
はい いいえ はい 既存のディクショナリーを保持します。 何も保持しません。
はい いいえ いいえ 何も保持しません。 何も保持しません。
いいえ はい はい 既存のディクショナリーを保持します。 何も保持しません。
いいえ はい いいえ 既存のディクショナリーを保持します。 何も保持しません。
いいえ いいえ はい 既存のディクショナリーを保持します。 何も保持しません。
いいえ いいえ いいえ 何も行われません。 何も行われません。
注:
  1. コンプレッション・ディクショナリーは、XML 列が Db2 バージョン 9.7 以降の表に追加された場合または表が Online Table Move を使用してマイグレーションされた場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。
  2. 表でデータ・キャプチャーが使用可能にされているという特殊な場合には、表の行データ・ディクショナリーが保持されます。

LOAD RESTART は、到達した最後の整合点まで表を切り捨てます。 LOAD RESTART 処理の一部として、最後の LOAD 整合点が取られたときにコンプレッション・ディクショナリーが表にあった場合、そのディクショナリーが表に存在します。 その場合、LOAD RESTART では新規ディクショナリーは作成されません。 考えられる条件の要約については、表 4 を参照してください。

表 4. LOAD RESTART ディクショナリー管理
表の COMPRESS 属性 LOAD 整合点の前に表の行データ・ディクショナリーが存在するか1 最後の LOAD 前に XML ストレージ・オブジェクト・ディクショナリーが存在したか2 RESTART: LOAD REPLACE KEEPDICTIONARY または LOAD INSERT RESTART: LOAD REPLACE RESETDICTIONARY
はい はい はい 既存のディクショナリーを保持します。 既存のディクショナリーを保持します。
はい はい いいえ 既存の表の行データ・ディクショナリーを保存し、ADC の制約を受ける XML ディクショナリーを作成します。 既存の表の行データ・ディクショナリーを保存し、XML ディクショナリーを作成します。
はい いいえ はい ADC の制約を受ける表の行データ・ディクショナリーを作成します。 既存の XML ディクショナリーを保持します。 表の行データ・ディクショナリーを作成します。 既存の XML ディクショナリーを保持します。
はい いいえ いいえ ADC の制約を受ける表の行データ・ディクショナリーおよび XML ディクショナリーを作成します。 表の行データ・ディクショナリーおよび XML ディクショナリーを作成します。
いいえ はい はい 既存のディクショナリーを保持します。 既存のディクショナリーを除去します。
いいえ はい いいえ 既存の表の行データ・ディクショナリーを保存します。 既存の表の行データ・ディクショナリーを除去します。
いいえ いいえ はい 既存の XML ディクショナリーを保持します。 既存の XML ディクショナリーを除去します。
いいえ いいえ いいえ 何も行われません。 何も行われません。
注:
  1. XML データのロード時には SAVECOUNT オプションは使用できません。ロード・フェーズ中に失敗したロード操作は、操作の最初から再開されます。
  2. コンプレッション・ディクショナリーは、XML 列が Db2 バージョン 9.7 以降の表に追加された場合または表が Online Table Move を使用してマイグレーションされた場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。

ロード・ユーティリティー用のファイル・タイプ修飾子

表 5. ロード・ユーティリティーで有効なファイル・タイプ修飾子: すべてのファイル・フォーマット
修飾子 説明
anyorder この修飾子は、ソース・データの順序を保持する必要がないことを指定します。 SMP システムでは、この修飾子を使用するとパフォーマンス上の大きな利益を得ることができます。 この修飾子は cpu_parallelism パラメーターと一緒に使用します。 cpu_parallelism パラメーターの値が 1 の場合、この修飾子は無視されます。 この修飾子は、SAVECOUNT パラメーターの値が 0 より大きい場合はサポートされません。一貫性ポイントの後のクラッシュ・リカバリーでは、順序のとおりにデータをロードする必要があるからです。 この修飾子は、 カラム・オーガナイズ 表、マルチディメンション・クラスタリング (MDC) 表、および範囲パーティション表のすべてのロード操作に対して暗黙的にオンになります。
cdeanalyzefrequency=x x0 から 99 の整数です。 この値は、ANALYZE フェーズでコンプレッション・ディクショナリーを作成するためにサンプリングするデータの量を制御します。 超並列処理 (MPP) では、サンプリング・サイズは全メンバーを集約せずに計算されます。 最初のメンバーが最大値に達すると、ANALYZE フェーズは停止します。
generatedignore この修飾子を指定すると、ロード・ユーティリティーは、データ・ファイルに入っている、すべての生成済み列のデータを無視するようになります。 この結果、すべての生成列の値はユーティリティーによって生成されます。 この修飾子は、 generatedmissing または generatedoverride 修飾子とともに使用することはできません。
generatedmissing この修飾子が指定されている場合、 ユーティリティーは、 生成列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なします。 この結果、すべての生成列の値はユーティリティーによって生成されます。 この修飾子は、 generatedignore または generatedoverride 修飾子とともに使用することはできません。
generatedoverride この修飾子は、(こうした列のタイプの通常の規則に反して) 表内のすべての生成列で、 ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。 これは、別のデータベース・システムからデータをマイグレーションする場合、または ROLLFORWARD DATABASE コマンドで RECOVER DROPPED TABLE オプションを使用してリカバリーされたデータから表をロードする場合に役立ちます。 この修飾子を使用した場合、 NULL 不可の生成列でデータまたは NULL データの入っていない行はリジェクトされます (SQL3116W)。 この修飾子が使用される場合、表は SET INTEGRITY PENDING 状態になります。 ユーザー提供の値をチェックせずに表を SET INTEGRITY PENDING 状態から解放するには、 ロード操作後に以下のコマンドを発行します。
SET INTEGRITY FOR table-name GENERATED COLUMN
  IMMEDIATE UNCHECKED
表の SET INTEGRITY PENDING 状態を解除し、 ユーザー定義の値の検査を強制するには、 ロード操作の後以下のコマンドを発行してください。
SET INTEGRITY FOR table-name IMMEDIATE CHECKED.

パーティション・キー、ディメンション・キー、または分散キーに生成列が含まれている場合にこの修飾子を指定すると、LOAD コマンドは、この修飾子を generatedignore に自動的に変換してから、ロードを開始します。 そのため、生成列の値がすべて再生成されることになります。

この修飾子は、 generatedmissing または generatedignore 修飾子とともに使用することはできません。

この修飾子は、 カラム・オーガナイズ 表には使用できません (SQLSTATE 42858)。

生成別ランダム方式を使用するランダム分散表には、RANDOM_DISTRIBUTION_KEY という内部生成列があります。 この修飾子はその列には適用されません。表内の他の生成列にのみ適用されます。 RANDOM_DISTRIBUTION_KEY の値は、常に再生成されます。

identityignore この修飾子はロード・ユーティリティーに対して、 ID 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この結果として、すべて ID 値はこのユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、 identitymissing または identityoverride 修飾子とともに使用することはできません。
identitymissing この修飾子を指定すると、ユーティリティーは、ID 列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 この修飾子は、 identityignore または identityoverride 修飾子とともに使用することはできません。
identityoverride この修飾子は、GENERATED ALWAYS として定義した ID 列が、 ロードする表に存在している場合にのみ使用するべきです。 この修飾子はユーティリティーに対し、 そのような列に関して、 明示的な非 NULL データを受け入れる (これらのタイプの ID 列に関する通常の規則に反する) ように指示します。 これは、表を GENERATED ALWAYS として定義する必要がある別のデータベース・システムからデータをマイグレーションする場合、または ROLLFORWARD DATABASE コマンドで DROPPED TABLE RECOVERY オプションを使用してリカバリーされたデータから表をロードする場合に役立ちます。 この修飾子を使用すると、ID 列にデータのない行や NULL データが入っている行は、リジェクトされます (SQL3116W)。 この修飾子は、identitymissing または identityignore 修飾子とともに使用することはできません。 このオプションが使用されていると、 ロード・ユーティリティーは、 表の ID 列内の値の固有性の保守または検証を行いません。
implicitlyhiddeninclude この修飾子が指定されている場合、ユーティリティーは、入力データ・ファイルに暗黙非表示列へのデータが含まれると見なし、そのデータもロードします。 この修飾子は、 implicitlyhiddenmissing 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、 セクションを参照してください。

生成別ランダム方式を使用するランダム分散表には、RANDOM_DISTRIBUTION_KEY という隠し列があり、これが分散列として使用されます。 この修飾子はその列には適用されません。表内の他の隠し列にのみ適用されます。 RANDOM_DISTRIBUTION_KEY は、ないものとして扱われます。

implicitlyhiddenmissing この修飾子を指定すると、ユーティリティーは入力データ・ファイルに暗黙的な非表示列のデータが含まれないと見なし、ユーティリティーがそれらの暗黙的な非表示列の値を生成します。 この修飾子は、 implicitlyhiddeninclude 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、 セクションを参照してください。
indexfreespace=x x は、0 から 99 までの整数です。 この値は、ロード操作で索引を再作成するときに各索引ページに残すフリー・スペースのパーセンテージとして解釈されます。 INDEXING MODE INCREMENTAL でロードしても、このオプションは無視されます。 ページの最初の項目は、制限なしで追加されます。 それより後の項目は、フリー・スペースのパーセントしきい値内である場合に追加されます。 デフォルト値は、CREATE INDEX の実行時に使用した値です。

この値は、CREATE INDEX ステートメントに指定された PCTFREE 値よりも優先して使用されます。 indexfreespace オプションの対象になるのは、索引のリーフ・ページだけです。

lobsinfile lob-path には、LOB データの入ったファイルへのパスを指定します。 ASC、DEL、または IXF ロード入力ファイルには、 LOB 列に LOB データが入っているファイルの名前が入っています。

ファイル・タイプが CURSOR の場合、このオプションはサポートされていません。

lobsinfile 修飾子を使用するときには、LOB ファイルの配置場所を LOBS FROM 節で指定します。 LOBS FROM 節を指定すると、lobsinfile の動作が暗黙的にアクティブになります。 LOBS FROM 節は、データのロード中に LOB ファイルを検索するためのパスのリストを LOAD ユーティリティーに伝達します。

各パスには、データ・ファイル内で LOB ロケーション指定子 (LLS) によって示される 1 つ以上の LOB の入った、少なくとも 1 つのファイルが組み込まれます。 LLS は、LOB ファイル・パスに保管されるファイル内の LOB のロケーションのストリング表現です。 LLS の形式は、filename.ext.nnn.mmm/ です。ここで、filename.ext は、LOB が含まれているファイルの名前、nnn は、そのファイルに入っている LOB のオフセット (バイト単位)、mmm は、その LOB の長さ (バイト単位) です。 例えば、ストリング db2exp.001.123.456/ がデータ・ファイルに保管される場合、 LOB はファイル db2exp.001 のオフセット 123 に位置し、456 バイト長です。

NULL LOB を指定するには、サイズに -1 と入力します。 サイズを 0 と指定すると、長さが 0 の LOB として扱われます。 長さが -1 の NULL LOB の場合、オフセットとファイル名は無視されます。 例えば、null LOB の LLS はdb2exp.001.7.-1/のようになります。

maxanalyzesize=x x は、<Number><Megabytes|Gigabytes>の値を持つサイズです。 デフォルト・サイズは 128 GB です。 maxanalyzesize は、ANALYZE フェーズでコンプレッション・ディクショナリーを作成するためにサンプリングするデータの量を制御します。 超並列処理 (MPP) では、サンプリング・サイズは全メンバーを集約せずに計算されます。 最初のメンバーが最大値に達すると、ANALYZE フェーズは停止します。
注: 値 0 は、無制限 (フルサイズ) を意味します。
以下はその例です。
modified by maxanalyzesize=1G
modified by maxanalyzesize=100M
noheader ヘッダー検査コードをスキップします (単一パーティション・データベースのパーティション・グループに存在する表へのロード操作にのみ適用します)。

単一パーティションのデータベース・パーティション・グループに存在する表に対してデフォルトの MPP ロード (モード PARTITION_AND_LOAD) が使用される場合、 ファイルにはヘッダーが組み込まれないと想定されます。 したがって、noheader 修飾子を指定する必要はありません。 LOAD_ONLY モードが使用される場合、ファイルにはヘッダーが付いていると想定されます。 noheader 修飾子が必要になるのは、ヘッダーのないファイルを使用して LOAD_ONLY 操作を実行する場合に限られます。

norowwarnings リジェクトされた行についてのすべての警告を抑止します。
pagefreespace=x x は、0 から 100 までの整数です。 この値は、各データ・ページ内でフリー・スペースとして残される部分のパーセンテージとして解釈されます。 最小の行サイズのために指定値が無効な場合 (例えば、最低でも 3,000 バイトの長さが必要な行で、x 値が 50 になっている場合など) は、行が新しいページに配置されます。 値として 100 を指定すると、各行が新しいページに配置されます。 表の PCTFREE 値は、ページごとに指定されたフリー・スペースの量を決定します。 ロード操作の pagefreespace 値または表の PCTFREE 値が設定されていないと、ユーティリティーはそれぞれのページで可能なかぎり多くのスペースを満たします。 pagefreespace に設定されている値は、表で指定されている PCTFREE 値をオーバーライドします。
periodignore この修飾子はロード・ユーティリティーに対して、期間列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。 この修飾子は、periodmissing 修飾子および periodoverride 修飾子のどちらとも、共に使用することはできません。
periodmissing この修飾子が指定されている場合、 ユーティリティーは、期間列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。 この修飾子は、periodignore 修飾子および periodoverride 修飾子のどちらとも、共に使用することはできません。
periodoverride この修飾子は、システム期間テンポラル表の GENERATED ALWAYS AS ROW BEGIN 列および GENERATED ALWAYS AS ROW END 列で、ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。 この動作は、このようなタイプの列に対する通常の規則とは異なっています。 この修飾子は履歴データを維持する場合、およびシステム期間テンポラル表にタイム・スタンプを含むデータをロードする場合に、役立てることができます。 この修飾子を使用すると、データが入っていない行や、ROW BEGIN 列または ROW END 列に対する NULL データはリジェクトされます。
rowchangetimestampignore この修飾子はロード・ユーティリティーに対して、ROW CHANGE TIMESTAMP 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この結果、すべての ROW CHANGE TIMESTAMP 列がユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、 rowchangetimestampmissing または rowchangetimestampoverride 修飾子とともに使用することはできません。
rowchangetimestampmissing この修飾子を指定すると、ユーティリティーは、行変更タイム・スタンプ列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 この修飾子は、 rowchangetimestampignore または rowchangetimestampoverride 修飾子とともに使用することはできません。
rowchangetimestampoverride この修飾子は、GENERATED ALWAYS として定義した ROW CHANGE TIMESTAMP 列が、ロードする表に存在している場合にのみ使用するべきです。 この修飾子はユーティリティーに対し、そのような列に関して、明示的な非 NULL データを受け入れる (これらのタイプの ROW CHANGE TIMESTAMP 列に関する通常の規則に反する) ように指示します。 これは、表を GENERATED ALWAYS として定義する必要がある別のデータベース・システムからデータをマイグレーションする場合、または ROLLFORWARD DATABASE コマンドで DROPPED TABLE RECOVERY オプションを使用してリカバリーされたデータから表をロードする場合に役立ちます。 この修飾子を使用すると、データが入っていない行や ROW CHANGE TIMESTAMP 列に対する NULL データはすべてリジェクトされます (SQL3116W)。 この修飾子は、rowchangetimestampmissing または rowchangetimestampignore 修飾子とともに使用することはできません。 このオプションが使用されていると、ロード・ユーティリティーは、 表の ROW CHANGE TIMESTAMP 列内の値の固有性の保守または検証を行いません。
seclabelchar 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、セキュリティー・ラベル値のストリング形式であることを示します。 LOAD は、ロード時に各セキュリティー・ラベルを内部形式に変換します。 ストリングが適切な形式ではない場合、行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3242W) が戻されます。 ストリングが表を保護するセキュリティー・ポリシーの一部である有効なセキュリティー・ラベルを表していない場合、行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3243W) が戻されます。

この修飾子は、 seclabelname 修飾子が指定されている場合は指定できません。指定されていない場合、ロードは失敗し、エラー (SQLCODE SQL3525N) が戻されます。

単一の DB2SECURITYLABEL 列で構成される表がある場合、データ・ファイルは例えば次のようになります。
"CONFIDENTIAL:ALPHA:G2"
"CONFIDENTIAL;SIGMA:G2"
"TOP SECRET:ALPHA:G2"
このデータのロードまたはインポートでは、以下のように seclabelchar ファイル・タイプ修飾子を使用する必要があります。
LOAD FROM input.del OF DEL MODIFIED BY SECLABELCHAR INSERT INTO t1
seclabelname 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、名前によって指定されることを示します。 LOAD は、その名前に対応する適切なセキュリティー・ラベルがあれば、その名前をそのセキュリティー・ラベルに変換します。 表を保護するセキュリティー・ポリシーで、指定された名前のセキュリティー・ラベルが存在しない場合、 行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3244W) が戻されます。

この修飾子は、 seclabelchar 修飾子が指定されている場合は指定できません。指定されていない場合、ロードは失敗し、エラー (SQLCODE SQL3525N) が戻されます。

単一の DB2SECURITYLABEL 列で構成される表がある場合、データ・ファイルは以下のようなセキュリティー・ラベル名で構成される可能性があります。
"LABEL1"
"LABEL1"
"LABEL2"
このデータのロードまたはインポートでは、以下のように seclabelname ファイル・タイプ修飾子を使用する必要があります。
   LOAD FROM input.del OF DEL MODIFIED BY SECLABELNAME INSERT INTO t1
注: ファイル・タイプが ASC の場合、セキュリティー・ラベルの名前に続くスペースは、名前の一部として解釈されます。 これを回避するには、striptblanks ファイル・タイプ修飾子を使用してスペースが除去されるようにします。
totalfreespace=x x は、0 以上の整数です。 この値は表内の合計ページのうち、 表の終わりにフリー・スペースとして追加される部分のパーセンテージと解釈されます。 例えば、x が 20 で、データのロード後に表に 100 個のデータ・ページがある場合は、20 個の空ページが追加されます。 その表のデータ・ページの合計数は 120 になります。 データ・ページの総数は、表の索引ページの数には影響を与えません。 このオプションは、索引オブジェクトには影響を与えません。 このオプションを指定して 2 つのロードが行われる場合、 2 番目のロードは、最初のロードによって最後に付加された余分のスペースを再利用しません。
transactionidignore この修飾子はロード・ユーティリティーに対して、TRANSACTION START ID 列のデータがデータ・ファイル内に存在するが、 それらのデータは無視するべきものであることを通知します。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。 この修飾子は、transactionidmissing 修飾子および transactionidoverride 修飾子のどちらとも、共に使用することはできません。
transactionidmissing この修飾子が指定されている場合、 ユーティリティーは、TRANSACTION START ID 列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。 この修飾子は、transactionidignore 修飾子および transactionidoverride 修飾子のどちらとも、共に使用することはできません。
transactionidoverride この修飾子は、システム期間テンポラル表の GENERATED ALWAYS AS TRANSACTION START ID 列で、ユーザーのデータを受け入れるようにロード・ユーティリティーに指示します。 この動作は、このタイプの列に対する通常の規則とは異なっています。 この修飾子を使用すると、データが入っていない行や、TRANSACTION START ID 列に対する NULL データはリジェクトされます。
usedefaults ターゲット表の列のソース列が指定されているが、1 つ以上の行インスタンスのデータが入っていない場合は、デフォルト値がロードされます。 欠落データの例を以下に示します。
  • DEL ファイルの場合: 列の値として、2 つの連続した列区切り (,,) や、任意の数のスペースで分離した 2 つの連続する列区切り (, ,) が指定されている。
  • DEL/ASC ファイルの場合: 列が不足している行、または元の指定には十分な長さでない行。 ASC ファイルの場合: NULL 列値は明示的に欠落していると見なされず、NULL 列値にはデフォルトが置換されません。 数値、日付、時刻、タイム・スタンプの列では、全桁スペース文字で NULL 列値を表記します。また、どのタイプの列でも、NULL INDICATOR を使用すれば、その列が NULL であることを示せます。
このオプションが指定されていない場合、行インスタンスのソース列にデータがないと、以下のいずれかの処理が行われます。
  • DEL/ASC ファイルの場合: 列が NULL 可能であれば、NULL がロードされます。 列が NULL 可能でない場合、ユーティリティーはその行をリジェクトします。
表 6. ロード・ユーティリティーで有効なファイル・タイプ修飾子: ASCII ファイル・フォーマット (ASC/DEL)
修飾子 説明
codepage=x x は、ASCII 文字ストリングです。 この値は、 入力データ・セット内のデータのコード・ページとして解釈されます。 ロード操作時に、文字データ (および文字内で指定された数値データ) は、 このコード・ページからデータベースのコード・ページへ変換されます。
以下の規則が適用されます。
  • DBCS のみ (GRAPHIC)、混合 DBCS、および EUC の場合、 区切り文字の範囲は x00 から x3F に制限されます。
  • EBCDIC コード・ページで指定された DEL データの場合、区切り文字は DBCS のシフトイン文字およびシフトアウト文字と同じであってはなりません。
  • nullindchar では、標準の ASCII セットのコード・ポイント x20 から x7F の範囲に含まれているシンボルを指定する必要があります。 これは、ASCII 記号およびコード・ポイントを示します。 EBCDIC データでは、コード・ポイントが異なるとしても、対応する記号を使用できます。

ファイル・タイプが CURSOR の場合、このオプションはサポートされていません。

dateformat="x" x は、ソースファイル内の日付の形式です。1 有効な日付エレメントは以下のとおりです。
YYYY - Year (four digits ranging from 0000 - 9999)
M    - Month (one or two digits ranging from 1 - 12)
MM   - Month (two digits ranging from 01 - 12;
         mutually exclusive with M)
D    - Day (one or two digits ranging from 1 - 31)
DD   - Day (two digits ranging from 01 - 31;
         mutually exclusive with D)
DDD  - Day of the year (three digits ranging
         from 001 - 366; mutually exclusive
         with other day or month elements)
デフォルト値の 1 が、指定されない各エレメントに割り当てられます。 日付形式の例を以下に示します。
"D-M-YYYY"
"MM.DD.YYYY"
"YYYYDDD"
dumpfile = x x は、 リジェクトされた行を書き込む例外ファイルの (サーバー・データベース・パーティションによる) 完全修飾名です。 1 レコードにつき、最大で 32 KB のデータが書き込まれます。 以下に、ダンプ・ファイルの指定方法の例を示します。
db2 load from data of del
   modified by dumpfile = /u/user/filename
   insert into table_name

ファイルは、インスタンスの所有者によって作成されて所有されます。 デフォルトのファイル権限をオーバーライドするには、 dumpfileaccessall ファイル・タイプ修飾子を使用します。

注:
  1. パーティション・データベース環境の場合、 パスはロードを実行するデータベース・パーティションにローカルなものでなければなりません。それによって、 並行して実行される複数のロード操作が同じファイルに書き込むことを防ぐことができます。
  2. ファイルの内容は、非同期バッファー・モードでディスクに書き込まれます。 ロード操作が失敗した場合や割り込みが発生した場合は、ディスクにコミットされたレコードの数を確実に把握する方法がありません。LOAD RESTART 後の整合性も保証できません。 ファイルが完全であるとされるのは、 1 回のパスの中で開始して完了するロード操作の場合だけです。
  3. 指定されたファイルが既に存在する場合は、再作成されずに切り捨てられます。
dumpfileaccessall ダンプ・ファイルの作成時に、読み取りアクセスを OTHERS に付与します。
このファイル・タイプ修飾子が有効なのは、以下の場合のみです。
  1. dumpfile ファイル・タイプ修飾子と一緒に使用された場合。
  2. ロード・ターゲット表に対してユーザーが SELECT 特権をもっている場合。
  3. これは、UNIX オペレーティング・システム上にある Db2 サーバー・データベース・パーティションで発行されます。

指定されたファイルが既に存在する場合、その権限は変更されません。

fastparse ユーザー指定の列値の構文検査が削減されるので、パフォーマンスは向上します。 表は、体系的な正確さが確保されます (セグメント化違反またはトラップを防ぐための十分なデータ・チェックがユーティリティーで実行されます) が、データの一貫性の妥当性検査は行われません。 すべての入力データが有効であることが確実でない限り、fastparse オプションを使用しないでください。 無効なデータ (例えば、fastparse オプションを指定して 1>0-00-20-07.11.12.000000 のような誤った形式のタイム・スタンプ) がサブミットされた場合、一部の SQL 操作では、検出されずにデータベースの他の部分に無効データを伝搬することができます。 無効なデータが後で検出されると、そのデータの発信元や、データがコピーされたその他の場所の数を追跡するのが困難になる可能性があります。
implieddecimal 暗黙指定されている小数点の位置が列定義によって決定され、 値の終わりにあるとは見なされなくなります。 例えば、値 12345 は、12345.00 ではなく123.45 として DECIMAL(8,2) 列にロードされます。

この修飾子は、 packeddecimal 修飾子と共に使用することはできません。

timeformat="x" x は、ソースファイル内の時刻の形式です。1 有効な時間エレメントは以下のとおりです。
H     - Hour (one or two digits ranging from 0 - 12
           for a 12 hour system, and 0 - 24
           for a 24 hour system)
HH    - Hour (two digits ranging from 00 - 12
           for a 12 hour system, and 00 - 24
           for a 24 hour system; mutually exclusive
             with H)
M     - Minute (one or two digits ranging
           from 0 - 59)
MM    - Minute (two digits ranging from 00 - 59;
           mutually exclusive with M)
S     - Second (one or two digits ranging
           from 0 - 59)
SS    - Second (two digits ranging from 00 - 59;
           mutually exclusive with S)
SSSSS - Second of the day after midnight (5 digits
           ranging from 00000 - 86400; mutually
           exclusive with other time elements)
TT    - Meridian indicator (AM or PM)
指定されない各エレメントには、デフォルト値の 0 が割り当てられます。 時刻フォーマットの例を以下に示します。
"HH:MM:SS"
"HH.MM TT"
"SSSSS"
timestampformat="x" x は、ソース・ファイル内のタイム・スタンプのフォーマットです。1 有効なタイム・スタンプ・エレメントは以下のとおりです。
YYYY   - Year (four digits ranging from 0000 - 9999)
M      - Month (one or two digits ranging from 1 - 12)
MM     - Month (two digits ranging from 01 - 12;
            mutually exclusive with M and MMM)
MMM    - Month (three-letter case-insensitive abbreviation for 
            the month name; mutually exclusive with M and MM)              
D      - Day (one or two digits ranging from 1 - 31)
DD     - Day (two digits ranging from 01 - 31; mutually exclusive with D)
DDD    - Day of the year (three digits ranging from 001 - 366; 
            mutually exclusive with other day or month elements)
H      - Hour (one or two digits ranging from 0 - 12
            for a 12 hour system, and 0 - 24 for a 24 hour system)
HH     - Hour (two digits ranging from 00 - 12 
            for a 12 hour system, and 00 - 24 for a 24 hour system; 
            mutually exclusive with H)
M      - Minute (one or two digits ranging from 0 - 59)
MM     - Minute (two digits ranging from 00 - 59;
            mutually exclusive with M, minute)
S      - Second (one or two digits ranging from 0 - 59)
SS     - Second (two digits ranging from 00 - 59;
            mutually exclusive with S)
SSSSS  - Second of the day after midnight (5 digits
            ranging from 00000 - 86400; mutually
            exclusive with other time elements)
U (1 to 12 times)
         - Fractional seconds(number of occurrences of U represent the 
              number of digits with each digit ranging from 0 to 9

TT     - Meridian indicator (AM or PM)
timestampformat="x" (続き)
YYYY、M、MM、D、DD、または DDD エレメントが指定されていない場合、デフォルト値の 1 が割り当てられます。 MMM エレメントが指定されていない場合、デフォルト値の「Jan」が割り当てられます。 他のエレメントが指定されていない場合には、デフォルト値の 0 が割り当てられます。 タイム・スタンプ・フォーマットの例を以下のセクションに示します。
   "YYYY/MM/DD HH:MM:SS.UUUUUU"

MMM エレメントの有効な値は、「jan」、 「feb」、 「mar」、 「apr」、 「may」、 「jun」、 「jul」、 「aug」、 「sep」、 「oct」、 「nov」、および「dec」です。 これらの値では、大/小文字は区別されません。

timestampformat 修飾子を指定しなかった場合、ロード・ユーティリティーは、タイム・スタンプ・フィールドで以下の 2 つの有効な形式のいずれかを使用します。
YYYY-MM-DD-HH.MM.SS 
YYYY-MM-DD HH:MM:SS

ロード・ユーティリティーは、DD と HH の間の区切り記号を調べてフォーマットを選択します。 ダッシュ '-' になっていれば、ロード・ユーティリティーは、通常のダッシュとドットの形式 (YYYY-MM-DD-HH.MM.SS) を使用します。 区切り文字がブランク・スペースの場合、ロード・ユーティリティーはコロン「:」を使用して、HH、MM、および SS を区切ります。

どちらの形式でも、マイクロ秒フィールド (UUUUUUU) を組み込むと、ロード・ユーティリティーはドット「.」を予期します。 区切り文字として YYYY-MM-DD-HH.MM.SS.UUUUUUYYYY-MM-DD HH:MM:SS.UUUUUU も有効です。

次の例では、ユーザー定義の日時形式を指示するデータを、schedule という表にロードする方法を示します。
db2 load from delfile2 of del
    modified by timestampformat="yyyy.mm.dd hh:mm tt"
    insert into schedule
usegraphiccodepage usegraphiccodepage が指定された場合、GRAPHIC または 2 バイト文字ラージ・オブジェクト (DBCLOB) データ・フィールドにロード されるデータは、GRAPHIC コード・ページであると見なされます。 データの残りは、文字コード・ページであると見なされます。 GRAPHIC コード・ページは、文字コード・ページと関連付けられます。 LOAD は、codepage 修飾子が指定されている場合はその修飾子、または codepage 修飾子が指定されていない場合は、データベースのコード・ページを通じて、文字コード・ページを決定します。

この修飾子は、リカバリーされている表に GRAPHIC データがある場合にのみ、 ドロップ済み表のリカバリーによって生成された区切りデータ・ファイルとともに使用される 必要があります。

制約事項

usegraphiccodepage 修飾子は、 EXPORT ユーティリティーによって作成された DEL ファイルと一緒に指定してはなりません。これらのファイルには、1 つのコード・ページでのみエンコードされたデータが含まれているためです。 usegraphiccodepage 修飾子はまた、ファイル内の 2 バイト文字ラージ・オブジェクト (DBCLOB) には無視されます。

xmlchar XML 文書が文字コード・ページでエンコードされていることを示します。

このオプションは、指定の文字コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。

各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は文字コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 文字コード・ページは codepage ファイル・タイプ修飾子で指定されている値であるか、 または指定がない場合はアプリケーションのコード・ページです。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。

xmlgraphic XML 文書が指定された GRAPHIC コード・ページでエンコードされていることを示します。

このオプションは、特定の GRAPHIC コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。

各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は GRAPHIC コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 GRAPHIC コード・ページは codepage ファイル・タイプ修飾子で指定されている値のグラフィック・コンポーネントであるか、または指定がない場合はアプリケーションのコード・ページのグラフィック・コンポーネントです。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。

表 7. ロード・ユーティリティーで有効なファイル・タイプ修飾子: ASC ファイル・フォーマット (区切り文字で区切られていない ASCII)
修飾子 説明
binarynumerics 数値データ (DECIMAL 以外) は、文字表記ではなく、 バイナリー形式でなければなりません。 これによって、コストの大きい変換操作を避けることができます。

このオプションがサポートされるのは、定位置 ASC において、 reclen オプションによって固定長レコードが指定されている場合だけです。

以下の規則が適用されます。
  • BIGINT、INTEGER、および SMALLINT を除き、データ・タイプ間の変換は実行されません。
  • データ長は、それぞれのターゲット列定義と一致している必要があります。
  • FLOAT は、IEEE 浮動小数点フォーマットでなければなりません。
  • ロード・ソース・ファイル中のバイナリー・データは、 ロード操作を実行するプラットフォームに関係なく、 ビッグ・エンディアンであると見なされます。

この修飾子の影響を受ける列のデータに NULL があってはなりません。 この修飾子を使用すると、ブランク (通常は NULL と解釈される) は、 バイナリー値であると解釈されます。

nochecklengths nochecklengths を指定した場合は、 ソース・データの中にターゲット表の列のサイズを超える列定義がある場合であっても、 各行のロードが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にロードすることができます。 例えば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。
nullindchar=x x は、単一文字です。 null 値を示す文字を x に変更します。 x のデフォルト値は Y です。2

文字が 1 つの英字である場合を除いて、この修飾子は EBCDIC データ・ファイルで大文字小文字を区別します。 例えば、NULL 標識文字を文字 N に指定した場合、 n も NULL 標識と認識されます。

packeddecimal binarynumerics 修飾子は DECIMAL フィールド・タイプで構成されないため、 パック 10 進数データを直接ロードします。

このオプションがサポートされるのは、定位置 ASC において、 reclen オプションによって固定長レコードが指定されている場合だけです。

符号ニブル用にサポートされる値は以下のとおりです。
+ = 0xC 0xA 0xE 0xF
 - = 0xD 0xB

この修飾子の影響を受ける列のデータに NULL があってはなりません。 この修飾子を使用すると、ブランク (通常は NULL と解釈される) は、 バイナリー値であると解釈されます。

サーバー・プラットフォームに関係なく、ロード・ソース・ファイル内のバイナリー・データのバイト・オーダーはビッグ・エンディアンであると見なされます。つまり、Windows オペレーティング・システムでこの修飾子を使用する場合は、バイト・オーダーを逆にしてはなりません。

この修飾子は、 implieddecimal 修飾子と共に使用することはできません。

reclen=x x は、最大値が 32 767 の整数です。x 文字は行ごとに読み取られ、改行文字は行の終わりを示すためには使用されません。
striptblanks データを可変長フィールドにロードする際に、後書きブランク・スペースを切り捨てます。 このオプションを指定しない場合、ブランク・スペースはそのまま保持されます。

このオプションは、 striptnulls と一緒に指定することはできません。 これらは、相互に排他的なオプションです。 このオプションは、廃止された t オプション (下位互換性のためだけにサポートされる) に代わるものです。

striptnulls データを可変長フィールドにロードする際に、後書き NULL (0x00 文字) を切り捨てます。 このオプションを指定しない場合、NULL はそのまま保持されます。

このオプションは、 striptblanks と一緒に指定することはできません。 これらは、相互に排他的なオプションです。 このオプションは、廃止された padwithzero オプション (下位互換性のためだけにサポートされる) に代わるものです。

zoneddecimal ゾーン 10 進数データをロードします。DECIMAL フィールド・タイプは、binarynumerics 修飾子の対象に含まれていません。 このオプションがサポートされるのは、定位置 ASC において、 reclen オプションによって固定長レコードが指定されている場合だけです。
ハーフバイト符号値は、以下の値のいずれかになります。
+ = 0xC 0xA 0xE 0xF 0x3
- = 0xD 0xB 0x7

数字としてサポートされている値は、0x0 から 0x9 です。

ゾーンとしてサポートされている値は、0x3 および 0xF です。

表 8. ロード・ユーティリティーで有効なファイル・タイプ修飾子: DEL ファイル・フォーマット (区切り文字で区切られている ASCII)
修飾子 説明
chardelX x は単一文字のストリング区切り文字です。 デフォルト値は二重引用符 (") です。 指定された文字は、文字ストリングを囲むために二重引用符の代わりに使用されます。2、 3 二重引用符 (") を明示的に指定する場合。 文字ストリング区切り文字として、次のように指定する必要があります。
modified by chardel""
以下のように、文字ストリング区切りとして単一引用符 (') を指定することもできます。
modified by chardel''
coldelX x は単一文字の列区切り文字です。 デフォルト値はコンマ (,) です。指定された文字は、列の終わりを示すためにコンマの代わりに使用されます。2、3
decplusblank 正符号文字。 正の 10 進数値の前に、正符号 (+) の代わりにブランク・スペースを付けます。デフォルトのアクションは、正の 10 進数値の前に正符号を付けることです。
decptX x は、小数点文字としてピリオドの代わりに使用される単一の文字です。 デフォルト値はピリオド (.) です。指定された文字は、小数点文字としてピリオドの代わりに使用されます。2、3
delprioritychar 区切り文字の現在のデフォルト優先順位は、(1) レコード区切り文字、(2) 区切り文字、(3) 列区切り文字です。 この修飾子を使用すると、区切り文字の優先順位が (1) 区切り文字、(2) レコード区切り文字、(3) 列区切り文字に戻り、 以前の優先順位に依存している既存のアプリケーションが保護されます。 構文:
db2 load ... modified by delprioritychar ...
例えば、以下のような DEL データ・ファイルがあるとします。
"Smith, Joshua",4000,34.98<row delimiter>
"Vincent,<row delimiter>, is a manager", ...
... 4005,44.37<row delimiter>

delprioritychar 修飾子を指定しているので、このデータ・ファイルは、2 行だけになります。 2 番目の <row delimiter> は 2 番目の行の最初のデータ列の一部と解釈されますが、1 番目と 3 番目の <row delimiter> は実レコードの区切り文字と解釈されます。 この修飾子が指定されていない場合、このデータ・ファイルには 3 つの行があり、それぞれが<row delimiter>で区切られます。

keepblanks タイプが CHAR、VARCHAR、LONG VARCHAR、または CLOB の各フィールドの前後のブランクを保持します。 このオプションを指定しないと、区切り文字で囲まれていないすべての前後のブランクは除去され、 表のすべてのブランク・フィールドに NULL が挿入されます。
以下の例では、データ・ファイルにある前後のブランクを保存しながら、 TABLE1 という表にデータをロードする方法を示します。
db2 load from delfile3 of del
   modified by keepblanks
   insert into table1
nochardel ロード・ユーティリティーは、列区切り文字と列区切り文字の間にあるすべての バイトが列データの一部であると見なします。 文字区切り文字は、列データの一部として構文解析されます。 Db2 データベース・システムを使用してエクスポートしたデータについては、このオプションを指定しないでください (ただし、エクスポート時に nochardel を指定していた場合は例外です)。 これは、区切り文字のないベンダー・データ・ファイルをサポートするために提供されます。 不適切に使用すると、データが損失または破壊される場合があります。

このオプションを chardelxdelprioritychar または nodoubledel と一緒に指定することはできません。 これらは、相互に排他的なオプションです。

nodoubledel 二重文字区切りの認識を抑止します。
表 9. ロード・ユーティリティーで有効なファイル・タイプ修飾子: IXF ファイル・フォーマット
修飾子 説明
forcein コード・ページが不一致でもデータを受け入れ、コード・ページ間の変換を抑止するようにユーティリティーに指示します。

固定長ターゲット・フィールドに、 そのデータが入るだけの十分な大きさがあるかどうかがチェックされます。 nochecklengths を指定した場合、 そのような検査は実行されず、各行のロードが試みられます。

nochecklengths nochecklengths を指定した場合は、 ソース・データの中にターゲット表の列のサイズを超える列定義がある場合であっても、 各行のロードが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にロードすることができます。 例えば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。

  1. 日付形式ストリングは必ず二重引用符で囲まなければなりません。 フィールド区切り文字には、 a から z、A から Z、および 0 から 9 の文字を使用することはできません。 フィールド区切り文字として、DEL ファイル・フォーマットの文字区切りまたはフィールド区切りと同じ文字を使用することはできません。 エレメントの開始および終了位置が明らかな場合、 フィールド区切り文字は任意指定です。 あいまいさが生じうるのは、 項目の長さが一定でない D、H、M、または S などのエレメントが使用されている場合です (修飾の仕方によって異なります)。
    タイム・スタンプ形式の場合は、月と分の記述子の間にあいまいさが生じないように注意する必要があります。これらの記述子は両方とも文字 M を使用するためです。 月フィールドは他の日付フィールドと隣接していなければなりません。 分フィールドは、他の時刻フィールドに隣接していなければなりません。 あいまいなタイム・スタンプ形式の例を以下に示します。
    "M" (could be a month, or a minute)
    "M:M" (Which is which?)
    "M:YYYY:M" (Both are interpreted as month.)
    "S:M:YYYY" (adjacent to both a time value and a date value)
    あいまいな場合、ユーティリティーはエラー・メッセージを報告し、操作は失敗します。
    以下に、明確なタイム・スタンプ・フォーマットを示します。
    "M:YYYY" (Month)
    "S:M" (Minute)
    "M:YYYY:S:M" (Month....Minute)
    "M:H:YYYY:M:D" (Minute....Month)

    二重引用符や円記号などの文字の前には、エスケープ文字 (例えば、&#xa5;) を付けなければなりません。

  2. chardelcoldel、または decpt ファイル・タイプ修飾子に提供される文字値は、ソース・データのコード・ページで指定する必要があります。
    文字コード・ポイント (文字記号ではない) は、xJJ または 0xJJ という構文で指定することができます (JJ はコード・ポイントの 16 進表記)。 例えば、列区切りとして # 文字を指定するには、以下のステートメントのいずれかを使用します。
    ... modified by coldel# ...
    ... modified by coldel0x23 ...
    ... modified by coldelX23 ...
  3. データ移動のための区切り文字の制約事項に、区切り文字の指定変更として使用できる文字に適用される制限のリストが示されています。
  4. サポートされていないファイル・タイプを MODIFIED BY オプションで使用しようとしても、 ロード・ユーティリティーは警告を出しません。 この場合、ロード操作が失敗し、エラー・コードが戻されます。
  5. ignoreincludemissingoverride が接尾部に付された複数の修飾子が指定されると、それらの修飾子はリストされた順に適用されます。 以下のステートメントの場合、入力データに ID 列ではない暗黙的な非表示列のデータが含まれます。 一方、暗黙的に非表示かどうかに関係なく、ID 列のデータは含まれません。
    db2 load from delfile1 of del modified by 
       implicitlyhiddeninclude identitymissing insert into table1 
    しかし、以下のステートメントにおいてファイル・タイプ修飾子の順序を変更すると、入力データにすべての暗黙的な非表示列のデータ (非表示の ID 列も含む) が含まれることになります。 一方、暗黙的に非表示でない ID 列のデータは含まれません。
    db2 load from delfile1 of del modified by 
       identitymissing implicitlyhiddeninclude insert into table1 
表 10. コード・ページと usegraphiccodepage を使用する場合の LOAD の動作
codepage=N usegraphiccodepage LOAD の動作
なし なし CLIENT オプションの指定があっても、ファイル内のすべてのデータは、アプリケーション・コード・ページではなく、データベース・コード・ページであると見なされます
あり なし ファイル内のすべてのデータは、コード・ページ N であると見なされます。

警告: N が 1 バイト・コード・ページの場合、GRAPHIC データを データベースにロードすると壊れます。

なし あり CLIENT オプションの指定があっても、ファイル内の文字データは、データベース・コード・ページであると見なされます。 CLIENT オプションの指定があっても、GRAPHIC データは、データベース GRAPHIC データのコード・ページであると見なされます。

データベース・コード・ページが 1 バイトの場合は、すべてのデータはデータベース・コード・ページであると見なされます。

警告: 1 バイト・データベースに GRAPHIC データをロードすると、壊れます。

あり あり 文字データはコード・ページ N であると想定されます。 グラフィック・データは、N のグラフィック・コード・ページであると想定されます。

N が 1 バイトまたは 2 バイト・コード・ページの場合は、 すべてのデータは、コード・ページ N であると見なされます。

警告: N が 1 バイト・コード・ページの場合、GRAPHIC データを データベースにロードすると壊れます。