LOAD コマンド

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

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

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

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

制約事項

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

範囲

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

許可

LOAD コマンドを実行するには、以下の 1 つ以上の権限が必要です。
  • データベースに対する DATAACCESS 権限
  • 表のスキーマに対する DATAACCESS 権限
  • データベースに対する LOAD 権限またはスキーマに対する LOAD 権限、および以下の特権。
    • ロード・ユーティリティーが以下のモードで呼び出された場合の表に対する INSERT または INSERTIN 特権。
      • INSERT モード
      • TERMINATE モード (直前のロード挿入操作を終了する)
      • RESTART モード (前のロード挿入操作を再開する)
    • 表に対する INSERT および DELETE 特権、またはロード・ユーティリティーが以下のモードで呼び出されたときのスキーマに対する INSERTIN および DELETEIN 特権。
      • REPLACE モード
      • TERMINATE モード (直前のロード置換操作を終了する)
      • RESTART モード (前のロード置換操作を再開するため)
    • 例外表に対する INSERT 特権、または例外表を含むスキーマに対する INSERTIN 特権 (そのような表がロード操作の一部として使用される場合)。
  • 保護された列を含む表にデータをロードするには、セッション許可 ID に LBAC 資格情報が必要です。 これらの資格情報は、表内のすべての保護された列への書き込みアクセスを許可するグループまたは役割を介して、直接または間接にすることができます。 それ以外の場合、ロードは失敗し、エラーが戻されます (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/directoryMULTIPARTSIZEMB <size>LOADlib-nameOPENnum-sessSESSIONSNONRECOVERABLEWITHOUT PROMPTINGDATA BUFFERbuffer-sizeSORT BUFFERbuffer-sizeCPU_PARALLELISMnDISK_PARALLELISMnINDEXING MODEAUTOSELECTREBUILDINCREMENTALDEFERREDALLOW NO ACCESSALLOW READ ACCESSUSEtablespace-nameFETCH_PARALLELISMYESNOSET INTEGRITY PENDING CASCADEIMMEDIATEDEFERRED LOCK WITH FORCE SOURCEUSEREXITexecutableRedirect Input or Output parametersPARALLELIZEPARTITIONED DB CONFIGpartitioned-db-option
Redirect Input or 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 one time.
  • 3 For column-organized tables, the default is the STATISTICS USE PROFILE parameter.

コマンド・パラメーター

CLIENT
ロードするデータが、リモート接続されたクライアント上に存在することを指定します。 ロード操作がリモート・クライアントから実行されていない場合、このオプションは無視されます。 このオプションは、CURSOR ファイル・タイプで指定された場合は無視されます。
注:
  1. dumpfile および lobsinfile 修飾子および XML FROM オプションは、CLIENT キーワードが指定されている場合でも、サーバー上のファイルを参照します。
  2. リモート・ロード操作中にコード・ページ変換は行われません。 データのコード・ページがサーバーのコード・ページと異なる場合は、codepage 修飾子を使用してデータのコード・ページを指定します。
  3. CLIENT キーワードは、リモート・ストレージ・オブジェクトとともに指定され、リモート・ホスト上で実行される場合、非推奨になっており、将来のリリースで廃止される予定です。 非推奨機能11.5.7を参照してください。 DB2_ENABLE_COS_SDK レジストリー変数が ON に設定されている場合、リモート・ストレージ別名を使用してリモート・ホスト上で実行される LOAD CLIENT は、既存の libcurl メソッドをサイレントに使用します (既知の制限に従います)。 DB2_ENABLE_COS_SDKを参照してください。
次の例では、データ・ファイル (/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 オプションが指定されていない限り、データベースが存在するデータベース・パーティションに存在していなければなりません。
remotefilename は、 IBM® Cloud Object Storage や Amazon Simple Storage Service (S3) などのリモート・ストレージ上にあり、ストレージ・アクセス別名を使用してアクセスされるファイルを参照します。 リモート・ストレージ・サーバーから転送されるファイルを一時的に保管するには、ローカル・ステージング・スペースが必要です。 リモート・ストレージ要件を参照してください。 リモート・ファイル名の構文は、次のとおりです。
DB2REMOTE://<alias>/<container>/<object>
複数の名前を指定すると、それらの名前は順番に処理されます。 最後に指定した項目がテープ装置の場合は、 別のテープを使用するようユーザーに対してプロンプトが出ます。 以下のリストは、有効な応答オプションを示しています。
c
警告メッセージを生成した装置の使用を続けます (例えば、新しいテープがマウントされた場合)。
d
警告メッセージを生成した装置の使用を停止します (例えば、テープがない場合)。
t
すべてのデバイスを停止します。
注:
  • 完全修飾ファイル名を使用します。 リモート・サーバーの場合は、常に完全修飾ファイル名を使用する必要があります。 呼び出し元と同じデータベース・パーティションにデータベースが存在する場合は、相対パスを使用できます。
  • EXPORT command using the ADMIN_CMD procedureを使用してデータをファイルにエクスポートすると、データ・ファイルは fenced ユーザー ID によって所有されます。 このファイルは通常、インスタンス所有者がアクセスすることはできません。 CLP または ADMIN_CMD プロシージャーから LOAD を実行するには、インスタンス所有者 ID がデータ・ファイルにアクセスできなければなりません。 そのため、データ・ファイルに対する読み取り権限をインスタンス所有者に付与する必要があります。
  • ファイルが物理的には分割されてはいるが論理的には 1 つのファイルである場合には、 複数の IXF ファイルからのデータのロードがサポートされています。 ファイルが論理的にも物理的にも分割されている場合は、 サポートされていません。 論理的にも物理的にも分割されているファイルを複数指定した場合、 最初のファイルより後のファイルはすべて無視されます。 (複数の物理ファイルは、EXPORT コマンドの 1 回の呼び出しで作成した 1 つの論理ファイルと見なされます。)
  • クライアント・コンピューター上に存在するデータをロードする場合、データは完全修飾ファイルまたは名前付きパイプのいずれかの形式でなければなりません。
  • XML データをファイルからパーティション・データベース環境の表にロードする場合、ロードが行われるすべてのデータベース・パーティションから XML データ・ファイルに読み取りアクセスできなければなりません。
  • DB2_LOAD_RESTRICTED_IO_PATH が使用可能で、ファイル名が指定されている場合、そのファイルは制限されたパス内に存在している必要があります。
OF filetype
データのフォーマットを指定します。
  • ASC (区切り付かない ASCII フォーマット)
  • DEL (区切り付き ASCII フォーマット)
  • IXF (統合交換フォーマット、PC バージョン) は、Db2 データベースによってのみ使用されるバイナリー・フォーマットです。
  • CURSOR (SELECT または VALUES ステートメントに対して宣言されたカーソル)。
注:
  • CURSOR ファイル・タイプを使用して XML データを分散データベース環境の表にロードする場合、PARTITION_ONLY モードと LOAD_ONLY モードはサポートされません。
  • CURSOR ファイル・タイプを指定して LOAD コマンドを実行する場合は、以下の相違点に注意してください。
    • DECLARE CURSOR ステートメントの実行中に DATABASE キーワードが指定された場合、LOAD コマンドは、データを取り出すための別個のアプリケーションを内部的に作成します。
    • DECLARE CURSOR ステートメントの実行中に DATABASE キーワードを指定しないと、LOAD コマンドは同じアプリケーション内のデータを取り出します。
    この 2 つのケースの違いにより、 ロッキング動作にも違いが生じます。 特に、以下の条件が満たされると、ロック (データベース構成に応じて、ロック待機やロック・タイムアウトなど) が作成される場合があります。
    • 現在接続されているデータベースと同じデータベースに対して DATABASE キーワードを指定します。
    • 同じユーザー ID とパスワードを使用して、現行接続と同じデータベースに接続します。

    このロック問題の回避策は、DATABASE キーワードを省略することです。

LOBS FROM lob-path
ロードする LOB 値を含むデータ・ファイルへのパス。 パスの最後はスラッシュでなければなりません。 CLIENT オプションを指定する場合、パスは完全修飾されている必要があります。 LOB データ・ファイルの名前は、メイン・データ・ファイル (ASC、DEL、または IXF) の LOB 列にロードされる列に保管されます。 指定できるパスの最大数は 999 です。 この節は、LOBSINFILE の動作を暗黙的にアクティブ化します。

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

DB2_LOAD_RESTRICTED_IO_PATH が有効になっている場合、 lob-path は制限されたパス内に存在している必要があります。

MODIFIED BY file-type-mod
ファイル・タイプ修飾子オプションを指定します。 ロード・ユーティリティーのファイル・タイプ修飾子を参照してください。
METHOD
L
データのロードを開始する列および終了する列の番号を指定します。 列の番号は、データの行の先頭からのバイト単位のオフセットです。 この番号は 1 から始まります。 このメソッドは ASC ファイルでのみ使用でき、そのファイル・タイプに有効な唯一のメソッドです。
NULL INDICATORS null-indicator-list
このオプションは、METHOD L パラメーターが指定されている場合にのみ使用できます (入力ファイルが ASC ファイルであることを示します)。 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 列にロードされる列に含まれています。

DB2_LOAD_RESTRICTED_IO_PATH が有効になっている場合、 xml-path が制限されたパス内に存在している必要があります。

XMLPARSE
XML 文書の解析方法を指定します。 このオプションを指定しない場合、XML 文書の構文解析の動作は、CURRENT IMPLICIT XMLPARSE OPTION 特殊レジスターの値によって決定されます。
STRIP WHITESPACE
XML 文書の構文解析時に空白文字を削除することを指定します。
PRESERVE WHITESPACE
XML 文書の構文解析時に空白文字を削除しないことを指定します。
XMLVALIDATE
該当する場合に、XML 文書がスキーマに準拠しているかどうかの妥当性検査を実行することを指定します。
USING XDS
XML 文書は、メイン・データ・ファイル内の XML データ指定子 (XDS) によって識別される XML スキーマに照らして妥当性検査されます。 デフォルトでは、XMLVALIDATE オプションが USING XDS 節とともに使用される場合、妥当性検査に使用されるスキーマは XDS の SCH 属性によって決定されます。 XDS に SCH 属性が存在しない場合、DEFAULT 節によってデフォルト・スキーマが指定されていない限り、スキーマの妥当性検査は行われません。
DEFAULTIGNORE、および MAP 節を使用することにより、スキーマ決定の動作を変更することができます。 これら 3 つの節はオプションであり、相互に適用されるのではなく XDS の指定に直接適用されます。 例えば、DEFAULT 節によって指定されているためにスキーマが選択された場合、IGNORE 節によっても指定されていても無視されません。 同様に、以下の条件が満たされている場合、スキーマは再マップされません。
  • スキーマは、MAP 節でペアの最初の部分として指定されているため、選択されます。
  • スキーマは、別の MAP 節のペアの 2 番目の部分でも指定されます。
USING SCHEMA schema-sqlid
指定されている SQL ID の XML スキーマに準拠しているかどうかについて、XML 文書の妥当性検査が実行されます。 この場合、XDS の SCH 属性はすべての XML 列で無視されます。
USING SCHEMALOCATION HINTS
XML 文書は、ソース XML 文書内の XML スキーマ・ロケーション・ヒントによって識別されるスキーマに対して妥当性検査されます。 schemaLocation 属性が XML 文書に見つからない場合、妥当性検査は行われません。 USING SCHEMALOCATION HINTS 節が指定されている場合、XDS の SCH 属性はすべての XML 列で無視されます。
以下のセクションに示す XMLVALIDATE オプションの例を参照してください。
IGNORE schema-sqlid
このオプションは、USING XDS パラメーターが指定されている場合にのみ使用できます。 IGNORE 節は、SCH 属性によって指定されていても無視するスキーマとして、1 つ以上のスキーマのリストを指定します。 以下の条件が両方とも満たされている場合、ロードされた XML 文書に対してスキーマ妥当性検査は行われません。
  • ロードされた XML 文書の XML データ指定子 (XDS) に SCH 属性が存在します。
  • SCH 属性によって識別されるスキーマは、無視するスキーマのリストに含まれています。
注:

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

IGNORE 節は XDS にのみ適用されます。 MAP 節によってマップされるスキーマは、後で IGNORE 節によって指定されても無視されません。

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

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

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

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

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

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

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 データがある場合は、この数量が大幅に増加する可能性があります。
  • サーバー上で、以下の条件が満たされている場合は、入力データの未加工サイズに相当するストレージ・スペース。
    • カラム・コンプレッション・ディクショナリーが作成されます。
    • パイプやソケットなどのデータ・ソースを再オープンすることはできません。
DB2_LOAD_RESTRICTED_IO_PATH が有効になっている場合、 temp-pathname が制限されたパス内に存在している必要があります。
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 ストレージ・オブジェクトに対して作成できます。
    • XML 列は、 Db2 バージョン 9.7 以降の表に追加されます。
    • 表は、オンライン表移動を使用してマイグレーションされます。
  2. LOAD REPLACE KEEPDICTIONARY 操作が中断された場合、ロード・ユーティリティーは、 LOAD RESTART または LOAD TERMINATE のいずれかが発行された後でリカバリーすることができます。 中断された LOAD REPLACE KEEPDICTIONARY 操作からリカバリーした後、既存の XML ストレージ・オブジェクト・ディクショナリーを保持することはできません。 LOAD RESTART を使用すると、新しい XML ストレージ・オブジェクト・ディクショナリーが作成されます。
RESETDICTIONARY
このディレクティブは、表 COMPRESS 属性が YES の場合に、表データ・オブジェクトの新しいディクショナリーを作成するように LOAD REPLACE 処理に指示します。

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 ストレージ・オブジェクトに対して作成できます。
    • XML 列は、 Db2 バージョン 9.7 以降の表に追加されます。
    • 表は、オンライン表移動を使用してマイグレーションされます。
  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 オプションは、表スペースからバックアップ・ペンディング状態を削除しません。

RESTART
重要: LOAD コマンドの RESTART オプションは、 Db2 バージョン 11.5.8では非推奨になっており、将来のリリースまたはモディフィケーション・パックで廃止される予定です。 同等の動作を実現するには、 LOAD TERMINATE の後に LOAD を使用します。
割り込みを受けたロード操作を再開します。 ロード操作は、ロード、作成、または削除フェーズの最後の整合点から自動的に続行されます。 ディクショナリー管理の要約を表 4 に示します。
RESTART パラメーターは、以下の表ではサポートされません。
  • カラム・オーガナイズ表。
  • 生成別ランダム方式を使用するランダム分散表。
ロード操作が失敗した後にこのタイプの表をリカバリーするには、TERMINATE パラメーターまたは REPLACE パラメーターを使用します。
INTO table-name
データのロード先となるデータベース表を指定します。 この表として、システム表、宣言済み一時表、または作成済み一時表は指定できません。 別名、完全修飾、または非修飾の表名を指定できます。 修飾された表名は、schema.tablename の形式になります。 非修飾の表名を指定すると、表は現行スキーマで修飾されます。
暗黙的な非表示列がデータベース表に含まれる場合には、ロード操作に非表示列のデータを含めるかどうかを指定する必要があります。 非表示列のデータを含めるかどうかを示すには、以下のいずれかの方法を使用します。
  • 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 オプションは、表スペースの状態を「ロード進行中」表スペースの状態にします。 この状態は一時的なものであり、ロードが完了するか失敗すると消えます。 表スペースのバックアップまたはデータベースのフルバックアップを実行しない限り、 表スペースのどの表のデータも更新または削除できません。 ただし、SELECT ステートメントを使用すれば、 どの表のデータにもアクセス可能です。

リカバリー可能データベースで COPY NO を指定すると、表スペースはバックアップ・ペンディング状態のままになります。 例えば、 COPY NO および INDEXING MODE DEFERREDを指定して LOAD を実行する場合は、索引をリフレッシュする必要があります。 表に対する特定の照会では索引スキャンが必要な場合がありますが、索引がリフレッシュされるまでは失敗します。 索引は、バックアップ・ペンディング状態の表スペースに存在する場合はリフレッシュできません。 その場合、バックアップが取られるまで表へのアクセスは許可されません。 索引リフレッシュは、索引が照会によってアクセスされたときに、 データベースによって自動的に行われます。

COPY NO は、以下の条件が満たされる場合のデフォルト・オプションです。
  • COPY NOCOPY YES、または NONRECOVERABLE が指定されていません。
  • データベースがリカバリー可能です。これは、logarchmeth1 または logarchmeth2 構成パラメーターが OFF 以外の値に設定されています。
COPY YES
ロードするデータのコピーを保存します。 このパラメーターは、順方向リカバリーがオフになっている場合は無効です。
USE TSM
IBM Tivoli® Storage Managerを使用してコピーを保管することを指定します。
OPEN num-sess SESSIONS
IBM Tivoli Storage Manager またはベンダー製品で使用される入出力セッションの数。 デフォルト値は 1です。
TO device/directory
コピー・イメージが作成される装置またはディレクトリーを指定します。

このディレクトリーは、IBM® Cloud Object Storage や Amazon Simple Storage Service (S3) などのリモート・ストレージ上にあり、ストレージ・アクセス別名を使用してアクセスできます。 DB2_ENABLE_COS_SDK が OFF に設定されている場合、リモート・ストレージ・サーバーに転送されるコピー・イメージを一時的に保管するためにローカル・ステージング・スペースが必要です。 リモート・ストレージの最大コピー・イメージ・サイズは 5 GB です。 詳しくは、 リモート・ストレージ要件を参照してください。 DB2_ENABLE_COS_SDK が ON に設定されている場合、ローカル・ステージング・スペースは必要ありません。 最大コピー・イメージ・サイズは、MULTIPARTSIZEMB サイズに、Cloud Object Storage プロバイダーによって許可されるパートの最大数を乗算して決定されます。

DB2_LOAD_RESTRICTED_IO_PATH が有効になっている場合、コピー・イメージ・パスは制限されたパス内に存在している必要があります。
MULTIPARTSIZEMB
DB2_ENABLE_COS_SDK レジストリー変数が ON に設定されている場合、 Db2 リモート・ストレージ と Cloud Object Storage との通信は、組み込みベンダーの Cloud Object Storage SDK を介して促進されます。 リモート・ストレージ通信により、 Db2 はオブジェクトまたはファイルを複数パーツで Cloud Object Storage にストリーミングできます。 このタイプのストリーミングは、マルチパート・アップロードと呼ばれます。 このキーワードは、コピー・イメージのパート・サイズをメガバイト (MB) 単位で指定し、MULTIPARTSIZEMB データベース・マネージャー構成パラメーターで指定された値をオーバーライドします。 このオプションは、 バージョン 11.5.7以降、 Linux® (x86) 環境でのみ使用できます。
LOAD lib-name
使用するベンダー・バックアップおよびリストア入出力関数が入っている共有ライブラリー (Windows オペレーティング・システム上の DLL) の名前。 絶対パスで指定することができます。 絶対パスが指定されていない場合、デフォルト・パスはユーザー出口プログラムの場所です。
NONRECOVERABLE
ロード・トランザクションにリカバリー不能のマークを付け、後続のロールフォワード・アクションによってリカバリーできないことを指定します。 ロールフォワード・ユーティリティーはトランザクションをスキップし、データがロードされていた表に無効のマークを付けます。 また、このユーティリティーは、その表に対する後続のトランザクションもすべて無視します。 ロールフォワード操作が完了した後、そのような表に対してサポートされる操作は、以下の操作のみです。
  • 表をドロップします。
  • リカバリー不能ロード操作の完了後にコミット・ポイントの後に取られたバックアップ (フルまたは表スペース) から表をリストアしました。

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

WITHOUT PROMPTING
ロードされるすべてのファイルがデータ・ファイルのリストに含まれていること、およびリストされているデバイスまたはディレクトリーがロード操作全体に対して十分であることを指定します。 継続入力ファイルが見つからない場合、またはロード操作が終了する前にコピー・ターゲットが満杯になった場合、ロード操作は失敗し、表は ロード保留 状態のままになります。
このオプションを指定しないと、以下のシナリオで新規テープの入力を求めるプロンプトが出されます。
  • テープ装置がコピー・イメージのテープの終わりを検出した。
  • リストされる最後の項目は磁気テープ装置です。
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
表オブジェクトの作成時に、ロード・ユーティリティーがレコードの構文解析、変換、およびフォーマット設定のために作成するプロセスまたはスレッドの数を指定します。 このパラメーターは、データベース・パーティションごとに実行されるプロセスの数を使用するように設計されています。 このパラメーターは、ソース・データのレコード順序が保持されるため、事前ソートされたデータをロードする場合に役立ちます。 このパラメーターの値がゼロであるか、または指定されなかった場合、ロード・ユーティリティーは実行時にインテリジェント・デフォルト値 (通常は使用可能な 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 データベース構成パラメーターをオフにすると、各ページの割り振りと初期化のみがインデックス・マネージャーによってログに記録されます。 ロギングの量は、各ページの空でない部分ではなく、1 ページ当たり約 250 バイトです。

INCREMENTAL
索引を新しいデータで拡張します。 この方法では、索引のフリー・スペースを使用します。 挿入されたレコードの索引キーを追加するために必要なのは、十分なソート・スペースだけです。 このメソッドは、索引オブジェクトが有効で、ロード操作の開始時にアクセス可能な場合にのみサポートされます。 逆に、DEFERRED モードが指定されたロード操作の直後は無効です。 このモードを指定したものの、索引の状態などの理由でサポートされない場合は、 警告が戻され、REBUILD モードでロード操作が続行されます。 同様に、ロード作成フェーズでロード再開操作を開始した場合も、 INCREMENTAL モードはサポートされません。

LogIndexBuild データベース構成パラメーターがオンになっている場合、 Db2 は、索引へのすべてのキーの挿入、および分割されたすべてのページのログ・レコードを生成します。 LogIndexBuild データベース構成パラメーターは、通常、HADR が使用されていない場合はオフになります。 このデータベース構成パラメーターがオフになっている場合、索引マネージャーによってログに記録される索引付けの量は、ALLOW READ ACCESS オプションが指定されているかどうかによって異なります。 ALLOW READ ACCESS オプションが指定されている場合、ページ分割に関するログを含んだログ・レコードが生成されます。 ALLOW READ ACCESS オプションが指定されていない場合、索引マネージャーからのログ・レコードは生成されません。

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

据え置き索引付けは、非ユニーク索引を持つ表に対してのみサポートされるため、ロード・フェーズ中に挿入される重複キーは、ロード操作後は永続的ではありません。

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

表に制約がある場合、表の状態はセット整合性保留中およびロード進行中に設定されます。 表の SET INTEGRITY ペンディング状態を解除するには、SET INTEGRITY ステートメントを使用する必要があります。

ALLOW 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 は、このパラメーターを使用できません。 また、ターゲット表上の索引が要再作成のマークが付けられると、 このオプションは無効になります。

表に制約がある場合、表の状態はセット整合性保留中、ロード進行中、および読み取りアクセスに設定されます。 ロードの終了時に、表の状態ロード進行中は除去されますが、表にはセット整合性保留中および読み取りアクセスの状態が残ります。 表の SET INTEGRITY PENDING を解除するには、SET INTEGRITY ステートメントを使用する必要があります。 表がセット整合性保留中および読み取りアクセスの状態にある間、データの非デルタ部分は引き続きリーダーにアクセス可能です。 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
このオプションが YES に設定されている場合、ロード・ユーティリティーは、以下のいずれかのシナリオでリモート・データ・ソースからのフェッチを並列化しようとします。
  • DATABASE キーワードを使用してカーソルが宣言されているカーソルからロードを実行する場合。
  • API sqlu_remotefetch_entry メディア・エントリーを使用する場合。

データのフェッチを並列化できるのは、カーソルの select-statement が単純形式 "SELECT * FROM <tablename>"の場合のみです。 NOに設定すると、並列フェッチは行われません。 デフォルト値は YES です。 詳しくは、CURSOR ファイル・タイプを使用したデータの移動を参照してください。

SET INTEGRITY PENDING CASCADE
LOAD が表を SET INTEGRITY ペンディング状態にする場合は、 SET INTEGRITY PENDING CASCADE を使用して、ロードされた表の SET INTEGRITY ペンディング状態を即時にすべての下位表にカスケードするかどうかを指定します。 下層表には、下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表が含まれます。
IMMEDIATE
セット整合性保留中の状態が、すべての子孫外部キー表、子孫即時マテリアライズ表、照会表、および子孫ステージング表に即時に拡張されることを示します。 LOAD INSERT 操作の場合、IMMEDIATE オプションが指定されている場合でも、 SET INTEGRITY PENDING 状態は下層外部キー表に拡張されません。

ロードされた表の制約違反が後で検査されると、セット整合性保留中読み取りアクセスの状態になった下層外部キー表は、セット整合性保留中アクセスなし状態になります。 ロードされた表は、SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションを使用して制約違反がないか検査されます。

DEFERRED
ロードされた表のみがセット整合性保留中の状態になることを示します。 下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表の状態は変更されません。

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

SET INTEGRITY PENDING CASCADE オプションが指定されていない場合、ロードされた表のみがセット整合性保留中の状態になります。 下層外部キー表、下層即時マテリアライズ照会表、および下層即時ステージング表の状態は変更されません。 これらの表は、ロードされた表に制約違反があるかどうかを検査するときに、後で暗黙的にセット整合性保留中の状態にすることができます。

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

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

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

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

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

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

DB2_LOAD_RESTRICTED_IO_ALLOW_SOURCEUSEREXIT が YES に設定され、 DB2_LOAD_RESTRICTED_IO_PATH が有効になっている場合は、SOURCEUSERXIT を使用できません。

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-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
ASCFILE1 には、以下のデータ・レコードがあります。
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 デフォルトとして定義されている) を使用して TABLE1 に挿入されます。
  4. 位置23および32は、TABLE1 の COL2 と COL3 に特定の行の NULL がロードされるかどうかを示すために使用されます。 特定のレコードの列の NULL 標識の位置に Y が含まれている場合、その列は NULL になります。 列の 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. LOBS FROM パラメーターには、ローダーが指定の LOB ファイルを必要とする場合に、それらのファイルを検索する 2 つのパスが含まれています。
  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 データは無視されますが、警告が生成されます。 以下の例では、ユーティリティーは表の 3 番目の列に sam をロードし、sdf という文字に警告のフラグを立てます。 このレコードはリジェクトされません。
22,34,"bob"
24,55,"sam" sdf
次の例では、ユーティリティーは 22,34,"bob"をロードし、22 に続く列 1 の一部のデータが無視されたことを示す警告を生成します。 このレコードはリジェクトされません。
22 3, 34,"bob"

例 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. ID 関連のファイル・タイプ修飾子を使用せずに DATAFILE1 を TABLE2 にロードすると、行 1 と行 2 がロードされます。 ただし、行 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

    この場合、行 1 と 2 はリジェクトされます。これは、ユーティリティーが、ユーザー提供の値を優先してシステム生成の ROW CHANGE TIMESTAMP 値をオーバーライドするように指示されたためです。 ただし、ユーザー提供の値が存在しない場合は、行変更タイム・スタンプ列が暗黙的に NULL ではないため、行を拒否する必要があります。

  5. ROW CHANGE に関連するファイル・タイプ修飾子を使用せずに DATAFILE1 を TABLE2 にロードすると、行 1 と 2 がロードされます。 ただし、行 3 および 4 は独自の非 NULL 値を提供し、行変更タイム・スタンプ列は 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

例 - CURSOR からの XML データのロード

カーソルからのデータのロードは、通常のリレーショナル列タイプの場合と同じです。 この例には、T1 と T2の 2 つの表があります。 各表は、C1という名前の単一の XML 列で構成されます。 T1 から T2に LOAD するには、まずカーソルを宣言します。

DECLARE
X1 CURSOR FOR SELECT C1 FROM T1;

次に、カーソル・タイプを使用して LOAD を発行できます。

LOAD FROM X1 of
CURSOR INSERT INTO T2

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

XMLVALIDATE 節の使用例

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

    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))
    • 以下の例は、XDS を含む XML 列を示しています。
      <XDS FIL='xmlfile.001.xml' />
      SQL ID S8.SCHEMA_H を持つ XML スキーマは、使用するデフォルト・スキーマとして S8.SCHEMA_H が指定されているため、ファイル xmlfile.001.xml内の文書の妥当性検査に使用されます。
    • 以下の例は、XDS を含む XML 列を示しています。
      <XDS FIL='xmlfile.002.xml' OFF='10' LEN='500' SCH='S10.SCHEMA_J' />
      XDS は使用するスキーマとして S10.SCHEMA_J を指定していますが、そのスキーマは IGNORE 節の一部であるため、ファイル xmlfile.002.xml内の文書に対してスキーマ妥当性検査は行われません。 文書の内容はファイル中のバイト・オフセット 10 (11 番目のバイト) にあり、その長さは 500 バイトです。
    • 以下の例は、XDS を含む XML 列を示しています。
      <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 へのマッピングは適用されません。

    • 以下の例は、XDS を含む XML 列を示しています。
      <XDS FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />

      ファイル xmlfile.004.xml内の文書の妥当性検査には、SQL ID S11.SCHEMA_K を持つ XML スキーマが使用されます。 この場合、DEFAULTIGNORE、 または MAP の指定のいずれも適用されません。

XMLVALIDATE USING SCHEMA
ユーザーは、単一の SCHEMA に従ってすべての XML 文書の妥当性検査を行いたいと思います。 これらの例は、以下の XMLVALIDATE 節に基づいています。
XMLVALIDATE USING SCHEMA S2.SCHEMA_B
  • 以下の例は、XDS を含む XML 列を示しています。
    <XDS FIL='xmlfile.001.xml' />

    ファイル xmlfile.001.xml 内の文書は、SQL ID S2.SCHEMA_Bを持つ XML スキーマを使用して妥当性検査されます。

  • 以下の例は、XDS を含む XML 列を示しています。
    <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
  • 以下の例は、XDS を含む XML 列を示しています。
    <XDS FIL='xmlfile.001.xml' />
    使用される XML スキーマは、文書コンテンツの schemaLocation 属性によって決定され、存在しない場合は妥当性検査は行われません。
  • 以下の例は、XDS を含む XML 列を示しています。
    <XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
    使用される XML スキーマは、文書コンテンツの schemaLocation 属性によって決定され、存在しない場合は妥当性検査は行われません。 検証は SCHEMALOCATION HINTSを使用して行われるため、SCH 属性は無視されます。

使用上の注意

  • データは、入力ファイル内に並んでいる順序でロードされます。 特定の順序が望ましい場合は、ロードを試みる前にデータをソートしてください。 ソース・データの順序を保持する必要がない場合は、ANYORDER ファイル・タイプ修飾子を使用できます。これについては、以下の ロード・ユーティリティーのファイル・タイプ修飾子 セクションで説明します。
  • ロード・ユーティリティーは、既存の定義に基づいて索引を作成します。 ユニーク・キーの重複を処理するのに、例外表が使用されます。 このユーティリティーは、参照整合性の強制、制約の検査、またはロード操作の一部である表に従属するマテリアライズ照会表の更新を行いません。 参照制約またはチェック制約を含む表は、SET INTEGRITY ペンディング状態になります。 REFRESH IMMEDIATE で定義されているサマリー表、およびロード操作の一部である表に従属するサマリー表も、セット整合性保留中の状態になります。 これらの表に関して、SET INTEGRITY ペンディング (Set Integrity Pending) 状態を解除するには、SET INTEGRITY ステートメントを発行してください。 ロード操作は、複製されたマテリアライズ照会表では実行できません。
  • クラスタリング索引が表に存在する場合は、ロードの前にクラスタリング索引のデータをソートします。 ただし、マルチディメンション・クラスタリング (MDC) 表にロードする前にデータをソートする必要はありません。
  • 保護された表にデータをロードするときに例外表を指定すると、無効なセキュリティー・ラベルによって保護されているすべての行がその表に送信されます。 この操作により、例外表にアクセスできるユーザーが、それ以外の方法ではアクセスが許可されていないデータにアクセスできるようになる可能性があります。 セキュリティーを向上させるには、以下のガイドラインに従ってください。
    • 例外表へのアクセス権限を誰に付与するかに注意してください。
    • 各行は、修復され、ロードする表にコピーされたらすぐに削除してください。
    • 例外表の処理が完了したら、すぐにその表をドロップします。
  • 内部形式のセキュリティー・ラベルには、改行文字が含まれている可能性があります。 DEL ファイル・フォーマットを使用してファイルをロードすると、これらの改行文字が区切り文字と間違われる可能性があります。 この問題が発生した場合は、 LOAD コマンドで delprioritychar ファイル・タイプ修飾子を指定して、古いデフォルトの区切り文字の優先順位を使用してください。
  • DECLARE CURSOR ステートメントで DATABASE キーワードを指定した CURSOR ファイル・タイプを使用して LOAD を実行する場合は、以下の認証に同じ資格情報が使用されます。
    • ロード操作のために現在接続されているデータベースに対する認証に使用されたユーザー ID とパスワード。
    • DECLARE CURSOR ステートメントの DATABASE オプションで指定された、ソース・データベースに対する認証に使用されたユーザー ID とパスワード。

    ユーザー 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 ストレージ・オブジェクトに対して作成できます。
    • XML 列は、 Db2 バージョン 9.7 以降の表に追加されます。
    • 表は、オンライン表移動を使用してマイグレーションされます。
  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. SAVECOUNT オプションは、XML データをロードするときには許可されません。ロード・フェーズ中に失敗したロード操作は、操作の最初から再開されます。
  2. コンプレッション・ディクショナリーは、以下のいずれかの条件が満たされている場合にのみ、表の XML ストレージ・オブジェクトに対して作成できます。
    • XML 列は、 Db2 バージョン 9.7 以降の表に追加されます。
    • 表は、オンライン表移動を使用してマイグレーションされます。

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

表 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 FOR table-name GENERATED COLUMN
  IMMEDIATE UNCHECKED
表の SET INTEGRITY PENDING 状態を解除し、 ユーザー定義の値の検査を強制するには、 ロード操作の後以下のコマンドを発行してください。
SET INTEGRITY FOR table-name IMMEDIATE CHECKED.

この修飾子が指定され、生成列がパーティション・キー、ディメンション・キー、または分散キーのいずれかに存在する場合、 LOAD コマンドは自動的にその修飾子を generatedignore に変換します。 その後、LOAD コマンドはロード操作を続行します。 最終効果は、生成されたすべての列値を再生成することです。

この修飾子は、 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 ファイル・タイプと一緒に指定された場合はサポートされません。

LOBS FROM 節は、 lobsinfile 修飾子が使用されている場合に LOB ファイルが配置される場所を指定します。 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 バイト以上の長さの行と、50x 値があります。 値 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 が生成されます。 この動作は、GENERATED BY DEFAULT 列と GENERATED ALWAYS 列の両方で同じです。 GENERATED ALWAYS 列の場合は、リジェクトされる行はありません。 この修飾子は、 rowchangetimestampmissing または rowchangetimestampoverride 修飾子とともに使用することはできません。
rowchangetimestampmissing この修飾子が指定されている場合、ユーティリティーは、入力データ・ファイルに行変更タイム・スタンプ列のデータが含まれていない (NULL も含まれていない) と想定します。 したがって、行ごとに値が生成されます。 この動作は、GENERATED BY DEFAULT 列と GENERATED ALWAYS 列の両方で同じです。 この修飾子は、 rowchangetimestampignore または rowchangetimestampoverride 修飾子とともに使用することはできません。
rowchangetimestampoverride この修飾子は、GENERATED ALWAYS として定義された行変更タイム・スタンプ列が、ロードされる表に存在する場合にのみ使用してください。 この修飾子はユーティリティーに対し、そのような列に関して、明示的な非 NULL データを受け入れる (これらのタイプの ROW CHANGE TIMESTAMP 列に関する通常の規則に反する) ように指示します。 この修飾子は、以下のシナリオで役立ちます。
  • 別のデータベース・システムからデータをマイグレーションする場合、表を GENERATED ALWAYS として定義する必要があります。
  • ROLLFORWARD DATABASE コマンドの DROPPED TABLE RECOVERY オプションを使用してリカバリーされたデータから表をロードする場合。

この修飾子を使用すると、ROW CHANGE TIMESTAMP 列にデータも NULL データもない行は拒否されます (SQL3116W)。 この修飾子は、 rowchangetimestampmissing または rowchangetimestampignore 修飾子とともに使用することはできません。 ロード・ユーティリティーは、このオプションが使用されている場合、表の行変更タイム・スタンプ列の値の固有性を維持または検証しようとしません。

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 以上の整数です。 この値は表内の合計ページのうち、 表の終わりにフリー・スペースとして追加される部分のパーセンテージと解釈されます。 例えば、x20で、データのロード後に表に 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 は、コード・ポイント x20 と x7F (両端を含む) の間の標準 ASCII セットに含まれるシンボルを指定する必要があり、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 も有効です。

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

この修飾子は、リカバリーした表にグラフィック・データがある場合にのみ、表のドロップ・リカバリーによって生成された区切り文字で区切られているデータ・ファイルと一緒に使用します。

制約事項

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

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

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

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

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

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

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

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

このオプションは、reclen オプションで指定された固定長レコードを使用することにより、定位置 ASC でのみサポートされます。

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

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

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

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

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

このオプションは、reclen オプションで指定された固定長レコードを使用することにより、定位置 ASC でのみサポートされます。

符号ニブルでは、以下の値がサポートされます。
+ = 0xC 0xA 0xE 0xF
- = 0xD 0xB

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

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

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

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

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

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

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

zoneddecimal ゾーン 10 進数データをロードします。DECIMAL フィールド・タイプは、binarynumerics 修飾子の対象に含まれていません。 このオプションは、reclen オプションで指定された固定長レコードを使用することにより、定位置 ASC でのみサポートされます。
ハーフバイト符号値は、以下の値のいずれかになります。
+ = 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 と一緒に指定することはできません。 この 2 つのオプションは相互に排他的です。

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 オプションで使用しようとしても、 ロード・ユーティリティーは警告を出しません。 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 バイト・コード・ページの場合、グラフィック・データはデータベースにロードされると破損します。
なし あり CLIENT オプションの指定があっても、ファイル内の文字データは、データベース・コード・ページであると見なされます。 CLIENT オプションの指定があっても、GRAPHIC データは、データベース GRAPHIC データのコード・ページであると見なされます。

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

重要: グラフィック・データは、1 バイト・データベースにロードされると壊れます。
あり あり 文字データはコード・ページ N であると想定されます。 グラフィック・データは、N のグラフィック・コード・ページであると想定されます。

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

重要: N が 1 バイト・コード・ページの場合、グラフィック・データはデータベースにロードされると破損します。