DB2 Version 10.1 for Linux, UNIX, and Windows

LOAD コマンド

データを DB2® 表にロードします。

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

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

制約事項

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

有効範囲

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

許可

以下の権限のうちの 1 つ以上。
  • DATAACCESS
  • データベースに対する LOAD 権限と以下の特権
    • 表の INSERT 特権 (ロード・ユーティリティーが INSERT モード、 TERMINATE モード、または RESTART モードで呼び出される場合 ( TERMINATE モードは直前のロード挿入操作を終了するためのもので、 RESTART モードは直前のロード挿入操作を再開するためのものです))
    • 表の INSERT および DELETE 特権 (ロード・ユーティリティーが REPLACE モード、 TERMINATE モード、または RESTART モードで呼び出される場合 ( TERMINATE モードは直前のロード置換操作を終了するためのもので、 RESTART モードは直前のロード置換操作を再開するためのものです))
    • 例外表の INSERT 特権 (例外表をロード操作の一部として使用する場合)。
  • 保護列のある表にデータをロードするには、 その表内のすべての保護列への書き込みアクセスを許可する 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 つあります。 入力データ行にその列の値が含まれていない場合、その行はリジェクトされます。ただし、LOAD コマンドで usedefaults ファイル・タイプ修飾子が指定されている場合は例外です。その場合には、その表を保護するセキュリティー・ポリシーの書き込みアクセス用のセキュリティー・ラベルが使用されます。 書き込みアクセス用のセキュリティー・ラベルがない場合、その行はリジェクトされ、次の行に処理が続行されます。

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

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

必要な接続

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

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

コマンド構文

構文図を読む構文図をスキップする
                           .-,--------------.                 
                           V                |                 
>>-LOAD--+--------+--FROM----+-filename---+-+--OF--filetype----->
         '-CLIENT-'          +-pipename---+                   
                             +-device-----+                   
                             '-cursorname-'                   

>--+-------------------------+--+------------------------+------>
   |            .-,--------. |  |           .-,--------. |   
   |            V          | |  |           V          | |   
   '-LOBS FROM----lob-path-+-'  '-XML FROM----xml-path-+-'   

>--+--------------------------------+--------------------------->
   |              .---------------. |   
   |              V               | |   
   '-MODIFIED BY----file-type-mod-+-'   

>--+-------------------------------------------------------------------------------------------------+-->
   |                 .-,------------------.                                                          |   
   |                 V                    |                                                          |   
   '-METHOD--+-L--(----col-start--col-end-+--)--+------------------------------------------------+-+-'   
             |                                  |                     .-,-------------------.    | |     
             |                                  |                     V                     |    | |     
             |                                  '-NULL INDICATORS--(----null-indicator-list-+--)-' |     
             |       .-,--------.                                                                  |     
             |       V          |                                                                  |     
             +-N--(----col-name-+--)---------------------------------------------------------------+     
             |       .-,------------.                                                              |     
             |       V              |                                                              |     
             '-P--(----col-position-+--)-----------------------------------------------------------'     

>--+------------------------------------+----------------------->
   '-XMLPARSE--+-STRIP----+--WHITESPACE-'   
               '-PRESERVE-'                 

>--+--------------------------------------------------------------------------------------+-->
   '-XMLVALIDATE USING--+-XDS--+-----------------------+--| Ignore and Map parameters |-+-'   
                        |      '-DEFAULT--schema-sqlid-'                                |     
                        +-SCHEMA--schema-sqlid------------------------------------------+     
                        '-SCHEMALOCATION HINTS------------------------------------------'     

>--+--------------+--+-------------+--+-----------------+------->
   '-SAVECOUNT--n-'  '-ROWCOUNT--n-'  '-WARNINGCOUNT--n-'   

>--+------------------------+----------------------------------->
   '-MESSAGES--message-file-'   

>--+-------------------------------+---------------------------->
   '-TEMPFILES PATH--temp-pathname-'   

>--+-INSERT-----------------------+----------------------------->
   |          .-KEEPDICTIONARY--. |   
   +-REPLACE--+-----------------+-+   
   |          '-RESETDICTIONARY-' |   
   +-RESTART----------------------+   
   '-TERMINATE--------------------'   

>--INTO--table-name--+-------------------------+---------------->
                     |    .-,-------------.    |   
                     |    V               |    |   
                     '-(----insert-column-+--)-'   

>--+----------------------------------------------------------+-->
   |                            .-,-------------------------. |   
   |                            V  (1)   (2)                | |   
   '-FOR EXCEPTION--table-name--------------+-------------+-+-'   
                                            +-NORANGEEXC--+       
                                            '-NOUNIQUEEXC-'       

>--+-----------------------------+------------------------------>
   '-STATISTICS--+-USE PROFILE-+-'   
                 '-NO----------'     

>--+-----------------------------------------------------------------+-->
   |       .-NO----------------------------------------------------. |   
   +-COPY--+-YES--+-USE TSM--+--------------------------+--------+-+-+   
   |              |          '-OPEN--num-sess--SESSIONS-'        |   |   
   |              |     .-,----------------.                     |   |   
   |              |     V                  |                     |   |   
   |              +-TO----device/directory-+---------------------+   |   
   |              '-LOAD--lib-name--+--------------------------+-'   |   
   |                                '-OPEN--num-sess--SESSIONS-'     |   
   '-NONRECOVERABLE--------------------------------------------------'   

>--+-------------------+--+--------------------------+---------->
   '-WITHOUT PROMPTING-'  '-DATA BUFFER--buffer-size-'   

>--+--------------------------+--+--------------------+--------->
   '-SORT BUFFER--buffer-size-'  '-CPU_PARALLELISM--n-'   

>--+---------------------+-------------------------------------->
   '-DISK_PARALLELISM--n-'   

>--+--------------------------------+--------------------------->
   '-INDEXING MODE--+-AUTOSELECT--+-'   
                    +-REBUILD-----+     
                    +-INCREMENTAL-+     
                    '-DEFERRED----'     

   .-ALLOW NO ACCESS-----------------------------.   
>--+---------------------------------------------+-------------->
   '-ALLOW READ ACCESS--+----------------------+-'   
                        '-USE--tablespace-name-'     

>--+----------------------------+------------------------------->
   |                    .-YES-. |   
   '-FETCH_PARALLELISM--+-NO--+-'   

>--+----------------------------------------------+------------->
   '-SET INTEGRITY PENDING CASCADE--+-IMMEDIATE-+-'   
                                    '-DEFERRED--'     

>--+-----------------+------------------------------------------>
   '-LOCK WITH FORCE-'   

>--+-----------------------------------------------------------------------------------+-->
   '-SOURCEUSEREXIT--executable--| Redirect Input/Output parameters |--+-------------+-'   
                                                                       '-PARALLELIZE-'     

>--+------------------------------------------------------+----><
   |                            .-----------------------. |   
   | .-PARTITIONED DB CONFIG-.  V                       | |   
   '-+-----------------------+----partitioned-db-option-+-'   

Ignore and Map parameters

|--+--------------------------------+--------------------------->
   |            .-,------------.    |   
   |            V              |    |   
   '-IGNORE--(----schema-sqlid-+--)-'   

>--+----------------------------------------------------+-------|
   |         .-,-----------------------------------.    |   
   |         V                                     |    |   
   '-MAP--(----(--schema-sqlid--,--schema-sqlid--)-+--)-'   

Redirect Input/Output parameters

|--+-------------------------------------------------------------------------------------+--|
   '-REDIRECT--+-INPUT FROM--+-BUFFER--input-buffer-+--+-----------------------------+-+-'   
               |             '-FILE--input-file-----'  '-OUTPUT TO FILE--output-file-' |     
               '-OUTPUT TO FILE--output-file-------------------------------------------'     

注:
  1. これらのキーワードの出現順序は任意です。
  2. これらのキーワードは、それぞれ 1 回だけ出現できます。

コマンド・パラメーター

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 | pipename | device | cursorname
ロードされるデータを含んだ SQL ステートメントを参照するファイル、パイプ、装置、またはカーソルを指定します。 入力ソースがファイル、パイプ、または装置の場合、CLIENT オプションが指定されていなければ、 データベースが存在するデータベース・パーティションになければなりません。
複数の名前を指定すると、それらは順番に処理されます。 最後に指定した項目がテープ装置の場合は、 別のテープを使用するようユーザーに対してプロンプトが出ます。 有効な応答オプションは、次のとおりです。
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 import 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 列について XML Data Specifier (XDS) の SCH 属性は無視されます。
以下のセクションに示す 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 列を含む表をロードする場合、このオプションは使用できません。

ROWCOUNT n
ロードするファイル内の物理レコードの数 n を指定します。 ユーザーはファイル内の最初の n 個の行だけをロードできます。
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
ロード・ユーティリティーを実行できる 4 つのモードのうちの 1 つ。 既存の表データを変更することなく、ロードされたデータを表に追加します。
REPLACE
ロード・ユーティリティーを実行できる 4 つのモードのうちの 1 つ。 表から既存データをすべて削除し、ロードされたデータを挿入します。 表定義および索引定義は変更されません。 階層間でデータを移動する際にこのオプションを使用する場合は、 階層全体に関係したデータだけが置き換えられます。副表は置き換えられません。

このオプションは、システム期間テンポラル表へのデータのロードには使用できません。

KEEPDICTIONARY
LOAD REPLACE 操作の後も、既存のコンプレッション・ディクショナリーを保持します。表の COMPRESS 属性が YES の場合、新規に置換されるデータは、ロードの呼び出し前に存在していたディクショナリーを使用して圧縮されるという影響を受けます。 ディクショナリーが表の中に以前に存在していない場合、表の COMPRESS 属性が YES である限り、置換されて表に入れられるデータを使用して新規ディクショナリーが作成されます。 この場合のコンプレッション・ディクショナリーを作成するために必要なデータ量は、ADC のポリシーの影響を受けます。 このデータは圧縮解除された状態で表に取り込まれます。 ディクショナリーが表にいったん挿入されると、ロード対象の残りのデータは、このディクショナリーを使用して圧縮されるという影響を受けます。 これはデフォルト・パラメーターです。 要約を表 1 に示します。
表 1. LOAD REPLACE KEEPDICTIONARY
圧縮 表の行データ・ディクショナリーが存在する XML ストレージ・オブジェクト・ディクショナリーが存在する1 コンプレッション・ディクショナリー データ圧縮
YES YES YES 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 ロードされるデータは圧縮の対象になります。
YES YES NO 表の行データ・ディクショナリーを保存し、新規 XML ディクショナリーを作成します。 ロードされる表の行データは圧縮の対象になります。 XML ディクショナリーが作成された後に、ロードされる残りの XML データは圧縮の対象になります。
YES NO YES 表の行データ・ディクショナリーを作成し、XML ディクショナリーを保存します。 表の行データ・ディクショナリーが作成された後に、ロードされる残りの表の行データは圧縮の対象になります。 ロードされる XML データは圧縮の対象になります。
YES NO NO 新規の表の行データおよび XML ディクショナリーを作成します。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
NO YES YES 表の行データ・ディクショナリーおよび XML ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
NO YES NO 表の行データ・ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
NO NO YES 表の行ディクショナリーには影響はありません。 XML ディクショナリーを保存します。 ロードされるデータは、圧縮されません。
NO NO NO 影響なし。 ロードされるデータは、圧縮されません。
注:
  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 で、ディクショナリーがすでに表にある場合、それは除去され、新規ディクショナリーは表に挿入されません。 コンプレッション・ディクショナリーは 1 つのユーザー・レコードのみを使用して作成できます。 ロードするデータ・セットのサイズがゼロの場合は、既存のディクショナリーが存在していても、そのディクショナリーは保持されません。このディレクティブを使用してディクショナリーを作成するために必要なデータ量は、ADC のポリシーの影響を受けません。 要約については、表 2 を参照してください。
表 2. LOAD REPLACE RESETDICTIONARY
圧縮 表の行データ・ディクショナリーが存在する XML ストレージ・オブジェクト・ディクショナリーが存在する1 コンプレッション・ディクショナリー データ圧縮
YES YES YES 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
YES YES NO 新規ディクショナリーの作成2。 DATA CAPTURE CHANGES オプションが CREATE TABLE または ALTER TABLE ステートメントで有効になっていると、現在の表の行データ・ディクショナリーが保持されます (これは履歴コンプレッション・ディクショナリー と呼ばれます)。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
YES NO YES 新規ディクショナリーの作成。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
YES NO NO 新規ディクショナリーの作成。 ディクショナリーが作成された後に、ロードされる残りのデータは圧縮の対象になります。
NO YES YES ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
NO YES NO 表の行データ・ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
NO NO YES XML ストレージ・オブジェクト・ディクショナリーを除去します。 ロードされるデータは、圧縮されません。
NO NO NO 影響なし。 すべての表データが圧縮されるわけではありません。
注:
  1. コンプレッション・ディクショナリーは、XML 列が DB2 バージョン 9.7 以降の表に追加された場合または表が Online Table Move を使用してマイグレーションされた場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。
  2. ディクショナリーが存在していて圧縮属性が有効であるものの、表パーティションにロードするレコードがない場合、新規ディクショナリーを作成することはできず、RESETDICTIONARY 操作では既存のディクショナリーは保持されません。
TERMINATE
ロード・ユーティリティーを実行できる 4 つのモードのうちの 1 つ。 以前に割り込みを受けたロード操作を終了し、 ロード操作が開始された時点まで操作をロールバックします。 途中に整合点があっても通過します。 その操作に関係する表スペースの状態は通常に戻され、 すべての表オブジェクトの整合性が保たれます (索引オブジェクトが無効とマークされる場合がありますが、 そのような場合には、次回のアクセス時に索引の再作成が自動的に行われます)。 終了するロード操作が LOAD REPLACE の場合、その表は LOAD TERMINATE 操作完了後に空の表まで切り捨てられます。 終了するロード操作が LOAD INSERT の場合、 その表は LOAD TERMINATE 操作完了後も元のレコードをすべて保持します。 ディクショナリー管理の要約を表 3 に示します。

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

RESTART
ロード・ユーティリティーを実行できる 4 つのモードのうちの 1 つ。 以前に割り込みを受けたロード操作を再開します。 ロード操作は、ロード、作成、または削除フェーズの最後の整合点から自動的に続行されます。 ディクショナリー管理の要約を表 4 に示します。
INTO table-name
データのロード先となるデータベース表を指定します。 この表として、システム表、宣言済み一時表、または作成済み一時表は指定できません。 別名、完全修飾、または非修飾の表名を指定できます。 修飾された表名は、schema.tablename の形式になります。 非修飾の表名を指定すると、その表は CURRENT SCHEMA で修飾されます。
暗黙的な非表示列がデータベース表に含まれる場合には、ロード操作に非表示列のデータを含めるかどうかを指定する必要があります。 非表示列のデータを含めるかどうかを示すには、以下のいずれかの方法を使用します。
  • データの挿入先の列を明示的に指定する場合、insert-column を使用します。
    db2 load from delfile1 of del
       insert into table1 (c1, c2, c3,...)
  • 非表示列のファイル・タイプ修飾子のいずれかを使用します。入力ファイルに非表示列のデータが含まれる場合には 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
エラーが発生した行のコピー先となる例外表を指定します。 ユニーク索引または主キー索引に違反した行がすべてコピーされます。 非修飾の表名を指定すると、その表は CURRENT SCHEMA で修飾されます。

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

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

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

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

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

COPY YES
ロードするデータのコピーを保存することを指定します。 フォワード・リカバリーが使用不可になっている場合、このオプションは無効です。
USE TSM
Tivoli® Storage Manager (TSM) を使ってコピーを保管することを指定します。
OPEN num-sess SESSIONS
TSM またはベンダー製品とともに使用する入出力セッションの数です。 デフォルト値は 1 です。
TO device/directory
コピー・イメージを作成する先の装置またはディレクトリーを指定します。
LOAD lib-name
使用するバックアップおよびリストア I/O ベンダー関数を含む共有ライブラリー (Windows オペレーティング・システムでは DLL) の名前。 絶対パスで指定することができます。 絶対パスを指定しない場合、 デフォルトでユーザー出口プログラムの存在するパスになります。
NONRECOVERABLE
ロード・トランザクションがリカバリー不能としてマークされており、 それ以降のロールフォワード・アクションによってそれをリカバリーさせることは不可能であることを指定します。 ロールフォワード・ユーティリティーは、そのトランザクションをスキップし、データのロード先の表に「無効」としてマークします。 さらに、ユーティリティーは、その表に対する後続のすべてのトランザクションを無視します。 ロールフォワード操作が完了すると、そのような表は、ドロップするか、 またはリカバリー不能なロード操作完了後のコミット・ポイントの後に取られたバックアップ (フルバックアップまたは表スペースのバックアップ) からリストアすることのみ可能です。

このオプションを使用すると、 表スペースはロード操作後に BACKUP PENDING 状態になりません。 また、ロード操作中にロードされたデータのコピーが作成される必要もなくなります。 COPY NOCOPY YESNONRECOVERABLE のいずれも指定されておらず、データベースがリカバリー可能ではない場合 (logarchmeth1 および logarchmeth2 の両方に 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 モードはサポートされません。

LogIndexBuild データベース構成パラメーターがオンになっている場合、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 の両方に設定されます。 表のロード中、データの非デルタ部分にアクセスすることができます。 つまり、表を読み取る側はロードの開始前に存在していたデータにはアクセスができ、 ロード中のデータはロードが完了するまで利用できない、ということです。
重要: バージョン 10.1 フィックスパック 1 以降、ALLOW READ ACCESS パラメーターは非推奨となっており、将来のリリースで除去される可能性があります。 詳しくは、LOAD コマンドの 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 ペンディング状態になる場合、 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 PENDING 状態になるかについては、 SQL リファレンスにある SET INTEGRITY ステートメントの「注」の項を参照してください。

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

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

LOAD によってターゲット表が SET INTEGRITY PENDING 状態にならない場合、SET INTEGRITY PENDING CASCADE オプションは無視されます。

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

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

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

SOURCEUSEREXIT executable
このユーティリティーにデータを送るために呼び出される実行可能ファイル名を指定します。
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 列の中のブランクが切り捨てられるようになります (例えば行 1、2、 および 3 の長さが 11、17、および 19 バイトである COL1)。
  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 にするようローダーに指示します。 行 1 の LOB1 をロードするには ASCFILE2 の内容が使われ、 ASCFILE3 の内容は行 1 の LOB2 をロードするのに使われます。 同じように、行 2 の LOB1 および LOB2 をロードするには ASCFILE4 と ASCFILE5 が使われ、 行 3 の LOB をロードするには ASCFILE6 と ASCFILE7 が使われます。
  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

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

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

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

例 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. 以下のコマンドは、DATAFILE1 で行 1 および 2 への IDENTITY 値が入力されていないので、それらの行のための IDENTITY 値を生成します。 ただし、行 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. ID 値 100 と 101 を行 3 および 4 に割り当てるために DATAFILE1 を TABLE2 にロードするには、 以下のコマンドを発行します。
    db2 load from datafile1.del of del modified by identityoverride
       replace into table2
    この場合、ユーティリティーには、ユーザー提供の値を優先して、 システム生成の ID 値に上書きするように指示しているため、 行 1 および 2 はリジェクトされます。 ユーザー提供の値が存在しない場合でも、 ID 列が暗黙的に非 NULL であるため、この行はリジェクトする必要があります。
  5. ID に関係するファイル・タイプ修飾子を使用せずに DATAFILE1 を TABLE2 にロードすると、 行 1 と 2 はロードされますが、 行 3 と 4 はリジェクトされます。 これは、行 3 と 4 では独自に非 NULL 値が提供されており、 ID 列が GENERATED ALWAYS であるためです。

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

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

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

例 1

USING XDS DEFAULT schema-sqlid

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

XMLVALIDATE
USING XDS DEFAULT S1.SCHEMA_B

例 2

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

XMLVALIDATE USING XDS IGNORE S1.SCHEMA_C

例 3

ユーザーは妥当性検査を行いたいと思いますが、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 に対して妥当性検査されます。

例 4

ユーザーは、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" が指定されているため、ファイル xmlfile.001.xml に含まれる文書は、SQL ID が "S8.SCHEMA_H" である 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' />
ファイル xmlfile.003.xml に含まれる文書は、SQL ID が "S3.SCHEMA_C" である 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' />
ファイル xmlfile.004.xml に含まれる文書は、SQL ID が "S11.SCHEMA_" である 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 内の文書は、"S2.SCHEMA_B" という SQL ID の 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 属性は無視されることに注意してください。

使用上の注意

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

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

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

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

表 5. ロード・ユーティリティーで有効なファイル・タイプ修飾子: すべてのファイル・フォーマット
修飾子 説明
anyorder この修飾子は、 cpu_parallelism パラメーターと共に使用されます。 ソース・データの順序を保持する必要がないことを指定します。 そのため、SMP システムでは、パフォーマンスがかなり向上します。 cpu_parallelism の値が 1 になっていると、このオプションは無視されます。このオプションは、SAVECOUNT > 0 の場合はサポートされません。整合点の後のクラッシュ・リカバリーでは、順序のとおりにデータをロードする必要があるからです。
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 修飾子と共に使用することはできません。

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 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、注: セクションを参照してください。
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 の動作が暗黙的にアクティブになります。LOAD ユーティリティーは、データをロードするときに、LOB ファイルを検索するためのパスのリストを LOBS FROM 節から受け取ります。

各パスには、データ・ファイル内で 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/ のようになります。

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   - 年 (0000 から 9999 の範囲の 4 桁の数)
M      - 月 (1 から 12 の範囲の 1 桁または 2 桁の数)
MM     - 月 (01 から 12 の 2 桁の数。
         M とは相互に排他的)
D      - 日 (1 から 31 の範囲の 1 桁または 2 桁の数)
DD     - 日 (01 から 31 の範囲の 2 桁の数。
         D とは相互に排他的)
DDD    - 元日から数えた日数 (001 から 366 の範囲の 3 桁の数。
         他の日または月エレメントとは
         相互に排他的)
デフォルト値の 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 使用に際しては、注意が必要です。 ユーザー指定の列値の構文検査が削減されるので、パフォーマンスは向上します。 表は、体系的な正確さが確保されます (セグメント化違反またはトラップを防ぐための十分なデータ・チェックがユーティリティーで実行されます) が、データの一貫性の妥当性検査は行われません。 データに一貫性があり、正確であることが確実な場合にのみ、このオプションを使用してください。 例えば、ユーザー指定のデータに無効なタイム・スタンプ列値 :1>0-00-20-07.11.12.000000 が含まれている場合でも、fastparse が指定されていれば、その値は表に挿入されてしまいますが、fastparse が指定されていなければ、その値はリジェクトされます。
implieddecimal 暗黙指定されている小数点の位置が列定義によって決定され、 値の終わりにあるとは見なされなくなります。 例えば、値 12345 は、12345.00 ではなく123.45 として DECIMAL(8,2) 列にロードされます。

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

timeformat="x" x はソース・ファイル内の時刻のフォーマットです。1 有効な時刻エレメントは以下のとおりです。
H      - 時 (12 時間制の場合は 0 から 12、
           24 時間制では 0 から 24 の範囲の
           1 桁または 2 桁の数)
HH     - 時 (12 時間制の場合は 00 から 12、
           24 時間制では 00 から 24 の範囲の
           2 桁の数;
             H と相互に排他的)
M     - 分 (0 から 59 の範囲の
           1 桁または 2 桁の数)
MM    - 分 (00 から 59 の範囲の 2 桁の数。
           M とは相互に排他的)
S     - 秒 (0 から 59 の範囲の
           1 桁または 2 桁の数)
SS    - 秒 (00 から 59 の範囲の 2 桁の数。
           S と相互に排他的)
SSSSS - 夜中の 12 時から数えた秒数
           (00000 から 86400 の範囲の 5 桁の数。
           他の時刻エレメントとは相互に排他的)
TT     - 午前/午後の指定子 (AM または PM)
指定されない各エレメントには、デフォルト値の 0 が割り当てられます。 時刻フォーマットの例を以下に示します。
"HH:MM:SS"
"HH.MM TT"
"SSSSS"
timestampformat="x" x はソース・ファイルのタイム・スタンプのフォーマットです。1 有効なタイム・スタンプ・エレメントは以下のとおりです。
YYYY   - 年 (0000 から 9999 の範囲の 4 桁の数)
M      - 月 (1 から 12 の範囲の 1 桁または 2 桁の数)
MM     - 月 (01 から 12 の 2 桁の数。
            M および MMM とは相互に排他的)
MMM    - 月 (大文字小文字を区別しない月名の 3 文字の省略形。
            M と MM とは相互に排他的)
D      - 日 (1 から 31 の範囲の 1 桁または 2 桁の数)
DD     - 日 (01 から 31 の範囲の 2 桁の数。D とは相互に排他的)
DDD    - 元日から数えた日数 (001 から 366 の範囲の 3 桁の数。
            他の日または月のエレメントとは相互に排他的)
H      - 時 (12 時間制の場合は 0 から 12、24 時間制では 0 から 24 の
            範囲の 1 桁または 2 桁の数。)
HH     - 時 (12 時間制の場合は 00 から 12、24 時間制では 00 から 24 の
            範囲の 2 桁の数。
            H と相互に排他的)
M      - 分 (0 から 59 の範囲の 1 桁または 2 桁の数)
MM     - 分 (00 から 59 の範囲の 2 桁の数。
            M (分) とは相互に排他的)
S      - 秒 (0 から 59 の範囲の 1 桁または 2 桁の数)
SS     - 秒 (00 から 59 の範囲の 2 桁の数。
            S と相互に排他的)
SSSSS  - 夜中の 12 時から数えた秒数
            (00000 から 86400 の範囲の 5 桁の数。
            他の時刻エレメントとは相互に排他的)
U (1 から 12 時)
         - 小数秒 (U のオカレンス数は、各桁を 0 から 9 の範囲として、
              桁数を表します)
TT     - 午前/午後の指定子 (AM または PM)
timestampformat="x" (Continued)
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 を区切ります。

どちらのフォーマットでも、マイクロ秒フィールド (UUUUUU) が含まれる場合、ロード・ユーティリティーは区切り文字としてドット「.」を使用します。 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 データがある場合にのみ、 ドロップ済み表のリカバリーによって生成された区切りデータ・ファイルとともに使用される 必要があります。

制約事項

EXPORT ユーティリティーで作成された DEL ファイルは、1 つのコード・ページのみでエンコードされたデータを含んでいるため、これらのファイルで usegraphiccodepage 修飾子を指定することはできません。 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 は、最大値 32767 の整数です。各行では 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 は単一文字のストリング区切り文字です。 デフォルト値は、二重引用符 (") です。指定した文字は、文字ストリングを囲むために、二重引用符の代わりに使用されます。23 文字ストリング区切り文字として明示的に二重引用符 (") を指定したい場合、以下のように指定します。
modified by chardel""
以下のように、文字ストリング区切りとして単一引用符 (') を指定することもできます。
modified by chardel''
coldelx x は単一文字の列区切り文字です。 デフォルト値はコンマ (,) です。 指定した文字は、列の終わりを表すために、 コンマの代わりに使用されます。 23
decplusblank 正符号文字。正の 10 進値の接頭部として、正符号 (+) ではなくブランク・スペースを使用します。 デフォルトのアクションでは、正の 10 進数の前に正符号 (+) が付けられます。
decptx x は、小数点文字としてピリオドの代わりに使用される単一文字です。 デフォルト値はピリオド (.) です。指定した文字は、小数点文字としてピリオドの代わりに使用されます。 23
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" (月または分のどちらにもとれる)
    "M:M" (月と分の区別がつかない)
    "M:YYYY:M" (両方とも月と解釈される)
    "S:M:YYYY" (時刻値と日付値の両方に隣接している)
    あいまいな場合、ユーティリティーはエラー・メッセージを報告し、操作は失敗します。
    以下に、明確なタイム・スタンプ・フォーマットを示します。
    "M:YYYY" (M (月))
    "S:M" (M (分))
    "M:YYYY:S:M" (M (月)....M (分))
    "M:H:YYYY:M:D" (M (分)....M (月))

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

  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. codepage および usegraphiccodepage 使用時の LOAD 動作
codepage=N usegraphiccodepage LOAD の動作
なし なし CLIENT オプションの指定があっても、ファイル内のすべてのデータは、アプリケーション・コード・ページではなく、データベース・コード・ページであると見なされます
あり なし ファイル内のすべてのデータは、コード・ページ N であると見なされます。

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

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

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

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

あり あり 文字データは、コード・ページ N であると見なされます。 GRAPHIC データは、N の GRAPHIC コード・ページであると見なされます。

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

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