IMPORT コマンド

IMPORT コマンドは、サポートされているファイル形式の外部ファイルから表、階層、ビュー、またはニックネームにデータを挿入します。 LOAD はより高速な代替方法です。しかしロード・ユーティリティーでは、階層レベルのデータのロードはサポートされていません。

許可

  • INSERT オプションを指定した IMPORT コマンドには、以下のいずれかの権限が必要です。
    • DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する INSERTIN および SELECTIN 特権
    • 関係するそれぞれの表、ビュー、またはニックネームに対する CONTROL 特権
    • 関係するそれぞれの表またはビューに対する INSERT および SELECT 特権
  • INSERT_UPDATE オプションを指定して既存の表に対して IMPORT コマンドを実行するには、以下のいずれかの権限が必要です。
    • DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する INSERTIN、SELECTIN、UPDATEIN、および DELETEIN 特権
    • 関係するそれぞれの表、ビュー、またはニックネームに対する CONTROL 特権
    • 関与するそれぞれの表またはビューに対する INSERT、SELECT、UPDATE、および DELETE 特権
  • REPLACE または REPLACE_CREATE オプションを使用する既存の表に対して IMPORT コマンドを実行するには、以下のいずれかの権限が必要です。
    • DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する DATAACCESS 権限
    • 関係するそれぞれの表またはビューのスキーマに対する INSERTIN、SELECTIN、および DELETEIN 特権
    • 表またはビューに対する CONTROL 特権
    • 表またはビューに対する INSERT、SELECT、および DELETE 特権
  • CREATE オプションまたは REPLACE_CREATE オプションを使用する新しい表に対する IMPORT コマンドには、以下のいずれかの権限が必要です。
    • DBADM 権限
    • データベースに対する CREATETAB 権限と表スペースに対する USE 特権、および以下のいずれか。
      • データベースに対する IMPLICIT_SCHEMA 権限 (表の暗黙的または 明示的スキーマ名が存在しない場合)
      • 表のスキーマ名が既存のスキーマを指している場合は、スキーマに対する CREATEIN 特権 または SCHEMAADM 権限
  • CREATEまたは REPLACE_CREATE オプションを使用する、存在しない階層に対する IMPORT コマンドには、以下のいずれかの権限が必要です。
    • DBADM 権限
    • データベースに対する CREATETAB 権限および表スペースに対する USE 特権と、 以下のいずれかが必要です。
      • 表のスキーマ名が存在しない場合は、データベースに対する IMPLICIT_SCHEMA 権限。
      • スキーマに対する CREATEIN 特権 または SCHEMAADM 権限 (表のスキーマが存在する場合)
      • 階層全体に対する REPLACE_CREATE オプションが使用されている場合は、階層内のすべての副表に対する CONTROL 特権。
  • REPLACE オプションを使用する既存の階層に対して IMPORT コマンドを実行するには、以下のいずれかの権限が必要です。
    • DATAACCESS 権限
    • 階層内のすべての副表のスキーマに対する DATAACCESS 権限
    • 階層内のすべての副表に対する CONTROL 特権
  • 列を保護する表にデータをインポートするには、セッション許可 ID に、表内のすべての保護された列への書き込みアクセスを許可する LBAC 資格情報がなければなりません。 それ以外の場合、インポートは失敗し、エラー (SQLSTATE 42512) が戻されます。
  • 行を保護する表にデータをインポートするには、以下の基準を満たす LBAC 資格情報をセッション許可 ID が保持している必要があります。
    • これは、表を保護するセキュリティー・ポリシーの一部です。
    • これは、書き込みアクセスのためにセッション許可 ID に付与されました。
    挿入する行のラベル、ユーザーの LBAC 信用証明情報、セキュリティー・ポリシー定義、および LBAC 規則が行のラベルを決定します。
  • 保護されている行を持つ表に対して、REPLACE または REPLACE_CREATE オプションを指定した場合は、表をドロップするための権限がセッション許可 ID になければなりません。
  • ニックネームにデータをインポートするには、セッション許可 ID には指定したデータ・ソースにパススルー・モードでアクセスおよび使用する特権がなければなりません。
  • 表が行アクセス制御を活動化する場合、その表の IMPORT REPLACE は表をドロップする機能を必要とします。 具体的には、表に対する CONTROL 権限、SCHEMAADM 権限、または DBADM 権限 のいずれかが必要です。

必要な接続

データベース。 暗黙的な接続が可能である場合には、 デフォルトのデータベースへの接続が確立されます。 Linux、UNIX、または Windows クライアントから Linux®、UNIX、または Windows データベース・サーバーへのユーティリティー・アクセスは、 Db2 Connect ゲートウェイまたはループバック環境経由ではなく、エンジン経由の直接接続でなければなりません。

コマンド構文

Read syntax diagramSkip visual syntax diagramIMPORT FROMfilenameOFfiletype LOBS FROM,lob-pathXML FROM,xml-pathMODIFIED BYfiletype-modMETHODL(,column-startcolumn-end)NULL INDICATORS(,null-indicator-list)N(,column-name)P(,column-position)XMLPARSESTRIPPRESERVEWHITESPACEXMLVALIDATE USINGXDSDEFAULTschema-sqlidIgnore and Map parametersSCHEMAschema-sqlidSCHEMALOCATION HINTSALLOW NO ACCESSALLOW WRITE ACCESSCOMMITCOUNTnAUTOMATICRESTARTCOUNTSKIPCOUNTnROWCOUNTnWARNINGCOUNTnNOTIMEOUTMESSAGESmessage-fileINSERTINSERT_UPDATEREPLACEREPLACE_CREATEINTOtable-name(,insert-column)hierarchy descriptionCREATEINTOtable-name(,insert-column)hierarchy descriptionAS ROOT TABLEUNDERsub-table-nametblspace-specs
Ignore and Map parameters
Read syntax diagramSkip visual syntax diagramIGNORE(,schema-sqlid)MAP(,(schema-sqlid,schema-sqlid))
hierarchy description
Read syntax diagramSkip visual syntax diagramALL TABLESsub-table-listINHIERARCHY STARTINGsub-table-nametraversal-order-list
sub-table-list
Read syntax diagramSkip visual syntax diagram( ,sub-table-name(,insert-column) )
traversal-order-list
Read syntax diagramSkip visual syntax diagram( ,sub-table-name )
tblspace-specs
Read syntax diagramSkip visual syntax diagramINtablespace-nameINDEX INtablespace-nameLONG INtablespace-name

コマンド・パラメーター

FROM filename
インポートするデータの入ったファイルを指定します。 パスを省略すると、現行作業ディレクトリーが使用されます。
OF ファイル・タイプ
入力ファイル内のデータのフォーマットを指定します。
  • ASC (区切りなし ASCII フォーマット)
  • DEL (区切り ASCII 形式)。さまざまな データベース・マネージャー およびファイル・マネージャー・プログラムによって使用されます。
  • IXF (統合交換フォーマット、PC バージョン) は、 Db2®専用に使用されるバイナリー・フォーマットです。
LOBS FROM lob-path
LOB ファイルを保管する 1 つ以上のパスを指定します。 LOB データ・ファイルの名前は、メイン・データ・ファイル (ASC、DEL、または IXF) の LOB 列にロードされる列に保管されます。 指定できるパスの最大数は 999 です。 このパラメーターは、LOBSINFILE の動作を暗黙的にアクティブ化します。

ニックネームにインポートするときには、このパラメーターは無効です。

XML FROM xml-path
XML ファイルが含まれているパスを 1 つ以上指定します。
MODIFIED BY filetype-mod
ファイル・タイプ修飾子オプションを指定します。 インポート・ユーティリティーのファイル・タイプ修飾子を参照してください。
METHOD
L
データのインポートを開始する列および終了する列の番号を指定します。 列の番号は、データの行の先頭からのバイト単位のオフセットです。 この番号は 1 から始まります。
注: この方法は ASC ファイルでのみ使用でき、そのファイル・タイプに有効な唯一のオプションです。
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 ファイルでのみ使用できます。
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 の場合のみです。また、DEL ファイル・タイプに対しては、これが唯一有効な方式です。
method P によって指定したフィールドごとに、 対応する列をアクション・ステートメント内に定義する必要があります。ただし、次の例に示すようにすべての列が対象になる場合、および最初の x 列がロードされる場合は必要ありません。
  db2 load from datafile1.del of del method P(1, 3, 4)
      replace into table1 (c1, c3, c4)
NULL INDICATORS null-indicator-list
このオプションは、METHOD L パラメーターを指定した場合にのみ使用できます。 つまり、入力ファイルが ASC ファイルの場合です。 NULL 標識リストは、各 NULL 標識フィールドの列番号を指定する正整数のコンマ区切りリストです。 列の番号は、データの行の先頭からのバイト単位の、各 NULL 標識フィールドのオフセットです。 METHOD L パラメーターで定義されているデータ・フィールドごとに、ヌル標識リストに 1 つの項目が必要です。 列の番号がゼロであることは、 対応するデータ・フィールド内に必ずデータがあることを示します。

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

NULL 標識文字は、 nullindchar ファイル・タイプ修飾子を指定した MODIFIED BY オプションを使用して変更できます。

XMLPARSE
XML 文書の解析方法を指定します。 このオプションを指定しない場合、XML 文書の構文解析の動作は、CURRENT IMPLICIT XMLPARSE OPTION 特殊レジスターの値によって決定されます。
STRIP WHITESPACE
XML 文書の解析時に空白文字を除去することを指定します。
PRESERVE WHITESPACE
XML 文書の解析時に空白文字を除去しないことを指定します。
XMLVALIDATE
該当する場合に、XML 文書がスキーマに準拠しているかどうかの妥当性検査を実行することを指定します。
USING XDS
XML 文書は、メイン・データ・ファイル内の XML データ指定子 (XDS) によって識別される 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 データ指定子 (XDS) の SCH 属性は、すべての XML 列で無視されます。
USING SCHEMALOCATION HINTS
XML 文書は、ソース XML 文書内の XML スキーマ・ロケーション・ヒントによって識別されるスキーマに対して妥当性検査されます。 schemaLocation 属性が XML 文書に見つからない場合、妥当性検査は行われません。 USING SCHEMALOCATION HINTS 節を指定すると、XML Data Specifier (XDS) の SCH 属性はすべての XML 列で無視されます。
以下のセクションに示す XMLVALIDATE オプションの例を参照してください。
DEFAULT schema-sqlid
このオプションは、USING XDS パラメーターを指定した場合にのみ使用できます。 DEFAULT 節を使用して指定されたスキーマは、インポートされた XML 文書の XML データ指定子 (XDS) に XML スキーマを識別する SCH 属性が含まれていない場合に、妥当性検査に使用するスキーマを識別します。

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

IGNORE schema-sqlid
このオプションは、USING XDS パラメーターを指定した場合にのみ使用できます。 IGNORE 節は、SCH 属性によって指定されていても無視するスキーマとして、1 つ以上のスキーマのリストを指定します。 インポートされた XML 文書の XML データ指定子に SCH 属性が存在し、SCH 属性によって識別されるスキーマが無視するスキーマのリストに含まれている場合、インポートされた XML 文書のスキーマ妥当性検査は行われません。

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

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

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

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

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

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

ALLOW NO ACCESS
オフライン・モードでインポートを実行します。 行の挿入の前には常に、ターゲット表に排他 (X) ロックがかけられます。 このパラメーターは、同時アプリケーションが表データにアクセスできないようにします。 これがデフォルトのインポート動作です。
ALLOW WRITE ACCESS
オンライン・モードでインポートを実行します。 最初の行の挿入時には、ターゲット表に意図的排他 (IX) ロックがかけられます。 このパラメーターによって、並行読み取りプログラムおよび書き出しプログラムはテーブル・データにアクセスすることができます。 オンライン・モードには、REPLACECREATE、または REPLACE_CREATE インポート・オプションとの互換性はありません。 オンライン・モードは、バッファー化挿入ではサポートされません。 インポート操作では、表ロックへのロック・エスカレーションを回避し、アクティブ・ログ・スペースの不足を回避するために、挿入されたデータを定期的にコミットします。 これらのコミットは、COMMITCOUNT オプションが使用されなかった場合でも実行されます。 各コミットごとに、インポートでは IX 表ロックが外されるので、 コミットの完了後に再びロックの設定が試みられます。 ニックネームにインポートするときにはこのパラメーターが必要で、有効な数値を使って COMMITCOUNT を指定する必要があります (AUTOMATIC は有効なオプションとは見なされません)。
COMMITCOUNT n | AUTOMATIC
n 個のレコードがインポートされるたびに COMMIT を実行します。 数 n を指定すると、 インポートでは n 個のレコードのインポートの後にそのつど COMMIT が実行されます。 コンパウンド挿入を使用した場合、ユーザー指定のコミット頻度 n は、 そのコンパウンド・カウント値に最も近い整数の倍数に切り上げられます。 AUTOMATIC を指定すると、コミットの必要時期はインポート操作で内部的に判別されます。 ユーティリティーは、以下の 2 つの理由のいずれかのためにコミットします。
  • 活動ログ・スペースが使い尽くされないようにするため。
  • 行レベルから表レベルへのロック・エスカレーションを回避するため。
ALLOW WRITE ACCESS オプションが指定されていて、COMMITCOUNT オプションが指定されていない場合、インポート・ユーティリティーは、COMMITCOUNT AUTOMATIC が指定されているかのようにコミットします。
アクティブ・ログ・スペースを使い尽くさないようにするインポート操作の機能は、 Db2 レジストリー変数 DB2_FORCE_APP_ON_MAX_LOGの影響を受けます。
  • DB2_FORCE_APP_ON_MAX_LOGFALSE に設定され、COMMITCOUNT AUTOMATIC コマンド・オプションが指定されている場合、インポート・ユーティリティーは、アクティブ・ログ・スペースの不足を自動的に回避できます。
  • DB2_FORCE_APP_ON_MAX_LOGFALSE に設定され、COMMITCOUNT n コマンド・オプションが指定されている場合、インポート・ユーティリティーは、レコードの挿入または更新中に SQL0964C (トランザクション・ログ・フル) を検出すると、ログ・フル状態の解決を試みます。 無条件コミットを実行してから、レコードの挿入または更新を再試行します。 このアクションが問題の解決に役立たない場合 (ログ・フルがデータベース上の他のアクティビティーに起因する場合)、IMPORT コマンドは予期したとおりに失敗しますが、コミットされる行数を COMMITCOUNT n 値の倍数にすることはできません。 インポート操作を再試行する際に既にコミットされた行を処理しないようにするには、 RESTARTCOUNT または SKIPCOUNT コマンド・パラメーターを使用します。
  • DB2_FORCE_APP_ON_MAX_LOGTRUE (デフォルト) に設定されている場合、レコードの挿入または更新中に SQL0964C が検出されると、インポート操作は失敗します。 これは、COMMITCOUNT AUTOMATICCOMMITCOUNT n のどちらを指定したかに関係なく発生します。

    アプリケーションは強制的にデータベースから切断され、現在の作業単位はロールバックされます。 インポート操作を再試行する際に既にコミットされた行を処理しないようにするには、 RESTARTCOUNT または SKIPCOUNT コマンド・パラメーターを使用します。

RESTARTCOUNT n
n + 1 の位置のレコードからインポート操作を開始するよう指定します。 最初の n 個のレコードはスキップされます。 このオプションは、SKIPCOUNT と機能上同等です。 RESTARTCOUNT および SKIPCOUNT は相互排他的です。
SKIPCOUNT n
n + 1 の位置のレコードからインポート操作を開始するよう指定します。 最初の n 個のレコードはスキップされます。 このオプションは、RESTARTCOUNT と機能上同等です。 SKIPCOUNT および RESTARTCOUNT は相互排他的です。
ROWCOUNT n
インポート (挿入または更新) するファイル内の物理レコードの数 n を指定します。 SKIPCOUNT オプションまたは RESTARTCOUNT オプションによって決定されたレコードから開始して、ファイルから n 行のみをインポートすることができます。 SKIPCOUNT オプションまたは RESTARTCOUNT オプションを指定すると、最初の n 行がインポートされます。 SKIPCOUNT m または RESTARTCOUNT m を指定すると、 行 m+ 1 から m+n がインポートされます。 コンパウンド挿入を使用した場合、ユーザー指定の ROWCOUNT n は、そのコンパウンド・カウント値に最も近い整数の倍数に切り上げられます。
WARNINGCOUNT n
n 個の警告後に、インポート操作を停止します。 このパラメーターは、警告は予期されないが、 正しいファイルと表が使用されていることを確認するのが望ましい場合に設定してください。 インポート・ファイルまたはターゲット表が正しく指定されていない場合、インポート・ユーティリティーは、インポートしようとする行ごとに警告を生成します。これにより、インポートは失敗します。 n がゼロの場合、またはこのオプションが指定されていない場合、発行された警告の数に関係なくインポート操作は続行されます。
NOTIMEOUT
ロックを待機しているときにインポート・ユーティリティーがタイムアウトにならないことを指定します。 このオプションは、locktimeout データベース構成パラメーターよりも優先されます。 他のアプリケーションは影響を受けません。
MESSAGES message-file
インポート操作中に生じ得る警告およびエラー・メッセージの宛先を指定します。 ファイルが存在する場合、インポート・ユーティリティーは情報を追加します。 このファイルへの完全パスが指定されていない場合、 このユーティリティーは現行のディレクトリーおよびデフォルトのドライブを宛先として使用します。 message-file を省略すると、メッセージは標準出力に書き込まれます。
INSERT
既存の表データを変更することなく、インポートされたデータを表に追加します。
INSERT_UPDATE
インポートしたデータ行をターゲット表に追加するか、または主キーが一致するものがあればターゲット表の既存行を更新します。
REPLACE
データ・オブジェクトを切り捨てることによって表内の既存のデータすべてを削除してから、 インポートしたデータを挿入します。 表定義および索引定義は変更されません。 表がない場合は、このオプションを使用できません。 階層間でデータを移動する際にこのオプションを使用する場合は、 階層全体に関係したデータだけが置き換えられます。副表は置き換えられません。

ニックネームにインポートするときには、このパラメーターは無効です。

このオプションは、CREATE TABLE ステートメントの NOT LOGGED INITIALLY (NLI) 節、または ALTER TABLE ステートメントの ACTIVE NOT LOGGED INITIALLY 節を受け入れません。

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

REPLACE オプションを指定したインポートが、NLI 節が呼び出される CREATE TABLE または ALTER TABLE ステートメントと同じトランザクション内で実行される場合、インポートは NLI 節を受け入れません。 すべての挿入がログに記録されます。

Workaround 1
DELETE ステートメントを使用して表の内容を削除してから、INSERT ステートメントを使用してインポートを呼び出します。
Workaround 2
表をドロップして再作成してから、INSERT ステートメントを使用してインポートを呼び出してください。
REPLACE_CREATE
注: REPLACE_CREATE パラメーターは非推奨になっており、将来のリリースで削除される可能性があります。 詳しくは、「IMPORT コマンド・オプション CREATE および REPLACE_CREATE は非推奨です」を参照してください。

表が既にある場合には、 データ・オブジェクトを切り捨てることによって表内の既存のデータすべてを削除し、 表定義や索引定義は変えることなく、インポートしたデータを挿入します。

表が存在しない場合は、データベースのコード・ページに表と索引の定義、および行の内容を作成します。 制約事項のリストについては、「インポートされた表の再作成」セクションを参照してください。

このオプションは、IXF ファイルの場合にのみ使用することができます。 階層間でデータを移動する際にこのオプションを使用する場合は、 階層全体に関係したデータだけが置き換えられます。副表は置き換えられません。

ニックネームにインポートするときには、このパラメーターは無効です。

INTO table-name
データのインポート先となるデータベース表を指定します。 この表として、システム表、作成済み一時表、宣言済み一時表、またはサマリー表は指定できません。

INSERTINSERT_UPDATE、または REPLACE の別名を使用できます。ただし、以前のサーバーの場合、完全修飾または非修飾の表名を使用できる場合を除きます。 修飾された表名は、schema.tablename の形式になります。 schema は、テーブルの作成に使用したユーザー名です。

暗黙的な非表示列がデータベース表に含まれている場合には、インポート操作に非表示列のデータを含めるかどうかを指定する必要があります。 非表示列のデータを含めるかどうかを示すには、以下のいずれかの方法を使用します。
  • insert-column を使用して、データの挿入先となる列を明示的に指定します。
    db2 import from delfile1 of del
       insert into table1 (c1, c2, c3,...)
  • 隠し列ファイル・タイプ修飾子の 1 つを使用します。入力ファイルに隠し列のデータが含まれている場合は implicitlyhiddeninclude を指定し、入力ファイルに含まれていない場合は implicitlyhiddenmissing を指定します。
    db2 import from delfile1 of del modified by implicitlyhiddeninclude
       insert into table1 
  • 暗黙的な非表示列が含まれる表をデータ移動ユーティリティーが検出した場合のデフォルト動作を設定するには、DB2_DMU_DEFAULT レジストリー変数をクライアント・サイドで使用します。
    db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
    db2 import from delfile1 of del insert into table1 
insert-column
データの挿入先となる表またはビュー内の列名を指定します。
ALL TABLES
階層専用の暗黙キーワード。 階層をインポートする場合、走査順序で指定されるすべての表をインポートすることがデフォルトです。
sub-table-list
INSERT オプションまたは INSERT_UPDATE オプションが指定された型付き表の場合、データのインポート先の副表を示すために副表名のリストが使用されます。
HIERARCHY
階層データをインポートするよう指定します。
STARTING sub-table-name
階層専用キーワード。 sub-table-name から始まるデフォルト順を要求します。 PC/IXF ファイルの場合、デフォルトの順序は、入力ファイルに保管されている順序です。 PC/IXF ファイル・フォーマットの場合、デフォルト順は有効な唯一の順序です。
traversal-order-list
INSERTINSERT_UPDATE、または REPLACE オプションが指定された型付き表の場合、階層内のインポートする副表のトラバーサル順序を示すために、副表名のリストが使用されます。
CREATE
注: CREATE パラメーターは非推奨になっており、将来のリリースで削除される可能性があります。 詳しくは、「IMPORT コマンド・オプション CREATE および REPLACE_CREATE は非推奨です」を参照してください。

データベースのコード・ページで表の定義と行の内容を作成します。 データが Db2 表、副表、または階層からエクスポートされた場合は、索引が作成されます。 このオプションが階層に作用し、データが Db2からエクスポートされた場合は、タイプ階層も作成されます。 このオプションは、IXF ファイルの場合にのみ使用することができます。

ニックネームにインポートするときには、このパラメーターは無効です。

注: データが MVS™ ホスト・データベースからエクスポートされ、ページ・サイズで計算される長さが 254 を超える LONGVAR フィールドが含まれている場合、行が長すぎるために CREATE が失敗する可能性があります。 制約事項のリストは、『インポート済みの表の再作成』 を参照してください。 この場合は、表を手動で作成し、 INSERT を指定して IMPORT を呼び出すことも、 LOAD コマンドを使用することもできます。
AS ROOT TABLE
1 つ以上の副表をスタンドアロン表階層として作成します。
UNDER sub-table-name
1 つ以上の副表を作成するための親表を指定します。
IN tablespace-name
表が作成される表スペースを識別します。 表スペースは存在している必要があり、REGULAR 表スペースまたは LARGE 表スペースでなければなりません。 他の表スペースを指定しない場合、すべての表パーツはこの表スペースに保管されます。 この節を指定しない場合、許可 ID によって作成される表スペースに表が作成されます。 何も検出されない場合、その表はデフォルト表スペースの USERSPACE1 に入れられます。 USERSPACE1 がドロップされると、表の作成は失敗します。
INDEX IN tablespace-name
表の索引が作成される表スペースを指定します。 このオプションは、IN 節で指定された 1 次表スペースが DMS 表スペースである場合にのみ許可されます。 指定した表スペースは存在している必要があり、 かつ REGULAR または LARGE DMS 表スペースでなければなりません。
注: 索引を含む表スペースの指定は、表の作成時にのみ行うことができます。
LONG IN tablespace-name
任意の長列 (LONG VARCHAR、LONG VARGRAPHIC、LOB データ・タイプ、またはこれらのいずれかをソース・タイプとして持つ特殊タイプ) の値が保管される表スペースを指定します。 このオプションは、IN 節で指定した PRIMARY 表スペースが DMS 表スペースである場合のみ使用できます。 指定した表スペースは存在している必要があり、LARGE DMS 表スペースでなければなりません。

例 1

以下の例は、myfile.ixfから STAFF 表に情報をインポートする方法を示しています。
   db2 import from myfile.ixf of ixf messages msg.txt insert into staff

SQL3150N  The H record in the PC/IXF file has product "DB2    01.00", date
"19970220", and time "140848".
 
SQL3153N  The T record in the PC/IXF file has name "myfile", 
qualifier "        ", and source "            ".
 
SQL3109N  The utility is beginning to load data from file "myfile".
 
SQL3110N  The utility has completed processing.  "58" rows were read 
from the input file.
 
SQL3221W  ...Begin COMMIT WORK. Input Record Count = "58".
 
SQL3222W  ...COMMIT of any database changes was successful.
 
SQL3149N  "58" rows were processed from the input file.  "58" rows were
successfully inserted into the table.  "0" rows were rejected.

例 2 (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 と行 2 の ID 値を生成します。これらの行のDATAFILE1には ID 値が指定されていないためです。 ただし、行 3 にはユーザー提供の ID 値 100 が、行 4 にはユーザー提供の ID 値 101 がそれぞれ割り当てられます。
   db2 import from datafile1.del of del replace into table1
DATAFILE1を TABLE1 にインポートして、すべての行に対して ID 値が生成されるようにするには、以下のいずれかのコマンドを発行します。
   db2 import from datafile1.del of del method P(1, 3, 4)
      replace into table1 (c1, c3, c4)
   db2 import from datafile1.del of del modified by identityignore
      replace into table1
行ごとに ID 値が生成されるようにDATAFILE2を TABLE1 にインポートするには、以下のいずれかのコマンドを発行します。
   db2 import from datafile2.del of del replace into table1 (c1, c3, c4)
   db2 import from datafile2.del of del modified by identitymissing
      replace into table1

ID 関連のファイル・タイプ修飾子を使用せずにDATAFILE1を TABLE2 にインポートすると、行 1 と 2 が挿入されますが、行 3 と 4 はリジェクトされます。これは、これらが独自の非 NULL 値を提供し、ID 列が GENERATED ALWAYS であるためです。

XMLVALIDATE 節の使用例

例 1 (XMLVALIDATE USING XDS)

以下の XMLVALIDATE 節の場合、
XMLVALIDATE USING XDS
  IGNORE (S1.SCHEMA_A)
  MAP ((S1.SCHEMA_A, S2.SCHEMA_B))
S1.SCHEMA_A の IGNORE が S2.SCHEMA_Bに対する S1.SCHEMA_A の MAP と競合するため、無効な構文が原因でインポートが失敗します。

例 2 (XMLVALIDATE USING XDS)

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

例 3 (XMLVALIDATE USING XDS)

以下の XMLVALIDATE 節の場合、
XMLVALIDATE USING XDS
  DEFAULT S1.SCHEMA_A
  IGNORE (S1.SCHEMA_A)
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして「S1.SCHEMA_A」が指定されているため、SQL ID「S1.SCHEMA_1」を持つ XML スキーマを使用して、ファイル「xmlfile.001.xml」内の文書が妥当性検査されます。
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
XDS は使用するスキーマとして「S1.SCHEMA_A」を指定していますが、そのスキーマは IGNORE 節の一部であるため、ファイル「xmlfile.002」内の文書に対してスキーマ妥当性検査は行われません。

例 4 (XMLVALIDATE USING XDS)

以下の XMLVALIDATE 節の場合、
XMLVALIDATE USING XDS
  DEFAULT S1.SCHEMA_A
  MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S2.SCHEMA_B, S1.SCHEMA_A))
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして「S1.SCHEMA_A」が指定されているため、SQL ID「S1.SCHEMA_1」を持つ XML スキーマを使用して、ファイル「xmlfile.001.xml」内の文書が妥当性検査されます。 DEFAULT 節が適用されたため、MAP 節は後で適用されないことに注意してください。 したがって、この場合、スキーマ "S1.SCHEMA_A からスキーマ "S2.SCHEMA_B" へのマッピングは適用されません。
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
SQL ID が「S2.SCHEMA_B」の XML スキーマは、ファイル「xmlfile.002.xml」内の文書を妥当性検査するために使用されます。 これは、 MAP 節が、スキーマ "S1.SCHEMA_A" をスキーマ "S2.SCHEMA_B" にマップできることを指定しているためです。 それ以外のマッピングは実行されないため、この場合、スキーマ "S2.SCHEMA_B" からスキーマ "S1.SCHEMA_A" へのマッピングは適用されないことに注意してください。
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.003.xml' SCH='S2.SCHEMA_B' />
SQL ID が「S1.SCHEMA_A」の XML スキーマは、ファイル「xmlfile.003.xml」内の文書を妥当性検査するために使用されます。 これは、 MAP 節が、スキーマ "S2.SCHEMA_B" をスキーマ "S1.SCHEMA_A" にマップできることを指定しているためです。 それ以外のマッピングは実行されないため、この場合、スキーマ "S1.SCHEMA_A" からスキーマ "S2.SCHEMA_B" へのマッピングは適用されないことに注意してください。

例 5 (XMLVALIDATE USING SCHEMA)

以下の XMLVALIDATE 節の場合、
XMLVALIDATE USING SCHEMA S2.SCHEMA_B
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.001.xml' />
ファイルxmlfile.001.xml内の文書は、SQL ID が「S2.SCHEMA_B」の XML スキーマを使用して妥当性検査されます。
XML 列に以下の XDS が含まれているとすると、
<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
ファイル「xmlfile.002.xml」内の文書は、SQL ID「S2.SCHEMA_B」の XML スキーマを使用して妥当性検査されます。 USING SCHEMA 節で指定された aschema を使用して検証が実行されるため、SCH 属性は無視されることに注意してください。

例 6 (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 属性は無視されることに注意してください。

使用上の注意

インポート操作を開始する前に、すべての表操作が完了し、すべてのロックがペンディング解除になっていることを確認してください。 これは、WITH HOLD でオープンされたすべてのカーソルをクローズした後に COMMIT を発行するか、または ROLLBACK を発行することによって行うことができます。

インポート・ユーティリティーは、SQL INSERT ステートメントを使用してターゲット表に行を追加します。 このユーティリティーは、 入力ファイル中の各行のデータにつき 1 つずつ INSERT ステートメントを発行します。 INSERT ステートメントが失敗した場合、以下の 2 通りの結果のいずれかになります。
  • 後続の INSERT ステートメントが成功すると予測される場合には、 警告メッセージがメッセージ・ファイルに書き込まれ、処理が継続されます。
  • 後続の INSERT ステートメントが失敗すると予測され、 データベースが損傷する可能性がある場合には、 エラー・メッセージがメッセージ・ファイルに書き込まれ、処理が停止されます。

このユーティリティーは、REPLACE または REPLACE_CREATE 操作時に以前の行が削除された後、自動 COMMIT を実行します。 したがって、システムに障害が発生したり、表オブジェクトが切り捨てられた後にアプリケーションが データベース・マネージャー に割り込んだりすると、古いデータはすべて失われます。 これらのオプションを使用する前に、 元のデータがもはや必要ないことを確認してください。

CREATEREPLACE、または REPLACE_CREATE 操作時にログが満杯になると、 このユーティリティーは挿入されたレコードに対して自動 COMMIT を実行します。 システムに障害が起こるか、アプリケーションが自動 COMMIT の後に データベース・マネージャー に割り込むと、部分的なデータを持つ表がデータベースに残ります。 REPLACE または REPLACE_CREATE オプションを使用してインポート操作全体をやり直すか、または正常にインポートされる行の数に設定した RESTARTCOUNT パラメーターを指定して INSERT を使用してください。

IMPORT コマンドからの更新は、常に IMPORT タスクの終わりにコミットされます。 IMPORT コマンドの実行時に自動コミットを実行して、ロック・リストのサイズとアクティブ・ログ・スペースを減らすこともできます。 IMPORT 処理中にアクティブ・ログがいっぱいになると、IMPORT コマンドはロールバックします。
  • デフォルトでは、INSERT または INSERT_UPDATE オプションについては自動コミットは実行されません。 しかし、COMMITCOUNT パラメーターがゼロでない場合は実行されます。
  • 以下のいずれかの条件が真であると、オフライン・インポートでは自動の COMMIT は実行されません。
    • ターゲットは表ではなくビューである。
    • コンパウンド挿入を使用している。
    • バッファー挿入を使用している。
  • デフォルトでは、オンライン・インポートは自動コミットを実行して、アクティブ・ログ・スペースとロック・リストを両方とも解放します。 自動コミットが実行されないのは、ゼロの COMMITCOUNT 値を指定した場合のみです。

インポート・ユーティリティーが COMMIT を実行するたびに、 2 つのメッセージがメッセージ・ファイルに書き込まれます。 一方は、コミットされるレコードの数を示し、もう一方は、 COMMIT の成功後に書き込まれます。 障害の後にインポート操作を再開するときには、 スキップするレコードの数 (最後の正常なコミットから判別される) を指定してください。

インポート・ユーティリティーは、互換性に問題のない入力データを受け入れます (例えば、文字データは埋め込みまたは切り捨てを使用してインポートでき、数値データは別の数値データ・タイプを使用してインポートできます) が、主要な非互換性の問題があるデータは受け入れられません。

オブジェクト・テーブルにそれ自体以外の従属セグメントがある場合は、その REPLACE または REPLACE_CREATE オブジェクト・テーブルを使用することはできません。また、基本テーブルに従属セグメント (それ自体を含む) がある場合は、オブジェクト・ビューを使用することもできません。 そのような表またはビューを置換するには、以下のとおりに行ってください。
  1. その表が親となっているすべての外部キーをドロップします。
  2. インポート・ユーティリティーを実行します。
  3. 表を変更して、外部キーを再作成します。

外部キーの再作成中にエラーが発生する場合、 参照整合性を保守するためにデータを変更してください。

参照制約および外部キー定義は、PC/IXF ファイルから表を再作成する場合は保存されません。 (データが前にSELECT *でエクスポートされた場合、プライマリキー定義は、が保持されます。)

リモート・データベースへのインポートでは、サーバーに、 入力データ・ファイルのコピー、出力メッセージ・ファイル、 およびデータベースのサイズ拡大を見込んだ十分なディスク・スペースが必要とされます。

インポート操作がリモート・データベースに対して実行され、 出力メッセージ・ファイルが非常に長くなった (60 KB を超過) 場合、 クライアントのユーザーに戻されるメッセージ・ファイルで、インポート操作中にメッセージが欠落する可能性があります。 メッセージ情報の最初の 30 KB と最後の 30 KB は、常に保持されます。

PC/IXF ファイルのリモート・データベースへのインポートは、 PC/IXF ファイルがディスケットにあるときよりも、 ハード・ディスクにあるときの方がより速く行うことができます。

式ベースのキーで定義された索引を持つ表については、PC/IXF ファイル・フォーマットを指定した IMPORT CREATE オプションを使用することはできません。

データベース表または階層が存在していないと、ASC または DEL ファイル形式のデータをインポートできません。 ただし、表が存在していない場合でも、IMPORT CREATE または IMPORT REPLACE_CREATE は、 PC/IXF ファイルからデータをインポートする際に表を作成します。 型付き表の場合、IMPORT CREATE はタイプ階層と表階層も作成することができます。

PC/IXF インポートを使用すると、データベース間でデータ (階層データを含む) を移動することができます。 行区切り文字を含む文字データが区切り文字付き ASCII (DEL) ファイルにエクスポートされ、 テキスト転送プログラムによって処理される場合、 行区切り文字を含むフィールドは長さが変わることがあります。 ソースとターゲットのデータベースが両方とも同じクライアントからアクセス可能である場合、 ファイルのコピーというステップは必要ありません。

ASC および DEL ファイルのデータは、 インポートを実行するクライアント・アプリケーションのコード・ページであると仮定されます。 異なるコード・ページのデータをインポートする場合は、 異なるコード・ページを使用することのできる PC/IXF ファイルをお勧めします。 PC/IXF ファイルとインポート・ユーティリティーが同じコード・ページである場合は、 通常のアプリケーションの場合のように処理が行われます。 それぞれのコード・ページが異なっており、FORCEIN オプションが指定されている場合、 インポート・ユーティリティーは、PC/IXF ファイルのデータのコード・ページと、 インポートを実行中のアプリケーションのコード・ページが同じであると見なします。 この処理は、 それら 2 つのコード・ページ用の変換テーブルが存在する場合であっても行われます。 それぞれのコード・ページが異なっており、FORCEIN オプションが指定されておらず、 変換テーブルが存在する場合、PC/IXF ファイルのすべてのデータは、 そのファイルのコード・ページからアプリケーションのコード・ページに変換されます。 この 2 つが異なる場合、FORCEIN オプションは指定されず、変換テーブルが存在しないと、インポート操作は失敗します。 このオプションは、 AIX® オペレーティング・システム上の Db2 クライアント上の PC/IXF ファイルにのみ適用されます。

8 KB ページ上の表オブジェクトの量が 1012 列の制限に近い場合、PC/IXF データ・ファイルをインポートすると、SQL ステートメントの最大サイズを超過するため、Db2 はエラーを戻します。 この状態が発生する可能性があるのは、列が CHAR、 VARCHAR、 または CLOB タイプの場合だけです。 DEL または ASC ファイルのインポートには、この制限事項は適用されません。 PC/IXF ファイルを使って新しい表を作成している場合、別の方法として、db2look を使って表を作成した DDL ステートメントをダンプしてから、そのステートメント CLP から発行する、という方法があります。

Db2 Connect を使用して、 Db2 for z/OS®などの DRDA サーバーにデータをインポートできます。 Db2 for VM and VSE、および Db2 for OS/400®。 PC/IXF インポート (INSERT オプション) のみがサポートされます。 RESTARTCOUNT パラメーターもサポートされていますが、COMMITCOUNT パラメーターはサポートされていません。

型付き表で CREATE オプションを使用するときは、PC/IXF ファイルで定義されているすべての副表を作成してください。副表の定義は変更できません。 型付き表で CREATE 以外のオプションを使用するときは、全探索順序リストによって全探索順序を指定できます。このため、全探索順序リストはエクスポート操作時に使用したものと一致する必要があります。 PC/IXF ファイル・フォーマットの場合、ターゲット・サブテーブル名を指定するだけで、ファイルに保管されているトラバース順序を使用することができます。

インポート・ユーティリティーは、 以前 PC/IXF ファイルにエクスポートされた表をリカバリーする場合に使用できます。 その表は、エクスポート時の状態に戻ります。

システム表、作成済み一時表、宣言済み一時表、またはサマリー表にデータをインポートすることはできません。

インポート・ユーティリティーを介してビューを作成することはできません。

個々のパーツが Windows システムから AIX システムにコピーされる、複数パーツの PC/IXF ファイルのインポートはサポートされています。 最初のファイルの名前だけ、IMPORT コマンドで指定する必要があります。 例えば、IMPORT FROM data.ixf OF IXF INSERT INTO TABLE1などです。 ファイル data.002などは、 data.ixfと同じディレクトリーで使用できます。

Windows オペレーティング・システムの場合:
  • 論理分割された PC/IXF ファイルのインポートはサポートされていません。
  • 不正な形式の PC/IXF ファイルのインポートは、 サポートされていません。

内部形式のセキュリティー・ラベルには、改行文字が含まれている可能性があります。 DEL ファイル・フォーマットを使用してファイルをインポートすると、これらの改行文字は区切り文字と誤解される可能性があります。 この問題が発生した場合は、 IMPORT コマンドで delprioritychar ファイル・タイプ修飾子を指定して、区切り文字に古いデフォルトの優先順位を使用してください。

暗黙的な非表示列がデータベース表に含まれている場合には、インポート操作に非表示列のデータを含めるかどうかを指定する必要があります。

IMPORT ユーティリティーは、表内の列数とデータ・ファイル内のフィールド数の突き合わせを行いません。 ユーティリティーは、データ・ファイル内に十分な量のデータがあるかどうかを検査し、データ・ファイル内の行に十分なデータ列が含まれていない場合、データのない対応する表の列が NOT NULL として定義されている場合は警告メッセージを出して行をリジェクトするか、対応する表の列が NULL として定義されている場合は警告メッセージを出さずに正常に挿入することができます。 一方、行に必要な数より多くの列が含まれている場合、必要な数の列が処理され、残りのデータ列は省略されます。警告メッセージは表示されません。

フェデレーテッドに関する考慮事項

IMPORT コマンドで INSERTUPDATE、または INSERT_UPDATE コマンド・パラメーターを使用するときには、関係するニックネームに対する CONTROL 特権があることを確認してください。 インポート操作の実行時に使用するニックネームが存在することを確認する必要があります。 IMPORT コマンド・パラメーターのセクションに示されているように、注意すべき制約事項もいくつかあります。

ODBC などの一部のデータ・ソースでは、ニックネームへのインポートはサポートされていません。

カラム・オーガナイズ表

  • IMPORT コマンドは、 カラム・オーガナイズ 表に関連するすべての INSERT、UPDATE、または DELETE ステートメントの制約事項を継承します。
  • IMPORT コマンドの CREATE INTO パラメーターは、 カラム・オーガナイズ 表を作成できません。
  • カラム・オーガナイズ 表に対するインポート操作では、インポート・パッケージがデータベースにバインドされるときに設定されるデフォルトの RS 分離レベルではなく、CS 分離レベル (挿入操作に必要) が使用されます。
  • CREATE パラメーターまたは IMPORT コマンドの REPLACE_CREATE パラメーターを使用して カラム・オーガナイズ 表からデータをエクスポートすることによって作成した IXF ファイルを使用することはできません。

インポート・ユーティリティー用のファイル・タイプ修飾子

表 1. インポート・ユーティリティーの有効なファイル・タイプ修飾子: すべてのファイル形式
修飾子 説明
compound=X x は 1 から 100 の数字です。 非アトミック・コンパウンド SQL を使用してデータを挿入します。 毎回 x 個のステートメントが試行されます。

この修飾子が指定され、トランザクション・ログに十分な大きさがない場合、インポート操作は失敗します。 トランザクション・ログは、COMMITCOUNT によって指定された行数か、または COMMITCOUNT が指定されていない場合はデータ・ファイルの行数を入れる十分な大きさが必要です。 したがって、トランザクション・ログのオーバーフローを避けるために、COMMITCOUNT オプションを指定することをお勧めします。

この修飾子は、次のものと互換性がありません。
  • INSERT_UPDATE モード
  • 階層表
  • 生成別ランダム方式を使用するランダム分散表
  • 次の修飾子: usedefaultsidentitymissingidentityignoregeneratedmissing、および generatedignore
generatedignore この修飾子は、すべての生成列のデータがデータ・ファイルに存在するが、無視できることをインポート・ユーティリティーに通知します。 このアクションにより、ユーティリティーによって生成列のすべての値が生成されます。 この修飾子は、generatedmissing 修飾子と共に使用することはできません。

生成別ランダム方式を使用するランダム分散表には、RANDOM_DISTRIBUTION_KEY という内部生成列があります。 この修飾子はその列には適用されません。表内の他の生成列にのみ適用されます。 RANDOM_DISTRIBUTION_KEY の値は、列リストで明示的に参照される場合を除き、再生成されます。

generatedmissing この修飾子が指定されている場合、 ユーティリティーは、 生成列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、 行ごとに値を生成します。 この修飾子は、generatedignore 修飾子と共に使用することはできません。

生成別ランダム方式を使用するランダム分散表には、RANDOM_DISTRIBUTION_KEY という内部生成列があります。 この修飾子はその列には適用されません。表内の他の生成列にのみ適用されます。 RANDOM_DISTRIBUTION_KEY の値は、列リストで明示的に参照される場合を除き、再生成されます。

identityignore この修飾子は、ID 列のデータがデータ・ファイルに存在することをインポート・ユーティリティーに通知しますが、無視することができます。 この結果として、すべて ID 値はこのユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、identitymissing 修飾子と共に使用することはできません。
identitymissing この修飾子を指定すると、ユーティリティーは、ID 列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 この修飾子は、identityignore 修飾子と共に使用することはできません。
implicitlyhiddeninclude この修飾子が指定されている場合、ユーティリティーは、入力データ・ファイルに暗黙非表示列へのデータが含まれると見なし、そのデータもインポートします。 この修飾子は、implicitlyhiddenmissing 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、 注: セクションを参照してください。

この修飾子は、生成別ランダム方式を使用するランダム分散表の非表示の RANDOM_DISTRIBUTION_KEY 列には適用されません。 その列の値は、その列が列リストで明示的に参照された場合のみ、入力データ・ファイルから読み取られます。

implicitlyhiddenmissing この修飾子を指定すると、ユーティリティーは入力データ・ファイルに暗黙的な非表示列のデータが含まれないと見なし、ユーティリティーがそれらの暗黙的な非表示列の値を生成します。 この修飾子は、implicitlyhiddeninclude 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、 注: セクションを参照してください。

この修飾子は、生成別ランダム方式を使用するランダム分散表の非表示の RANDOM_DISTRIBUTION_KEY 列には適用されません。 その列の値は、その列が列リストで明示的に参照された場合のみ、入力データ・ファイルから読み取られます。

lobsinfile lob-path には、LOB データの入ったファイルへのパスを指定します。

各パスには、データ・ファイル内で 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 バイト長です。

LOBS FROM 節は、 lobsinfile 修飾子が使用される場合に LOB ファイルが配置される場所を指定します。 LOBS FROM 節によって、LOBSINFILE 動作が暗黙的にアクティブ化されます。 LOBS FROM 節は、データのインポート中に、IMPORT ユーティリティーに LOB ファイルを検索するためのパスのリストを送ります。

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

no_type_id 1 つの副表にインポートする場合にのみ有効です。 一般的な使用法は、通常の表からデータをエクスポートしてから、インポート操作を (この修飾子を使用して) 呼び出して、データを単一の副表に変換することです。
nodefaults ターゲット表の列に対応するソース列が明示的に指定されていない場合、その表列が NULL 不可能なら、デフォルト値はロードされません。 このオプションを指定せず、あるターゲット表列のためのソース列が明示的に指定されていない場合、以下のいずれかになります。
  • 列にデフォルト値を指定できる場合、そのデフォルト値がロードされます。
  • 列が NULL 可能で、デフォルト値がその列に指定できない場合、NULL がロードされます。
  • 列が NULL 不可能で、デフォルト値がその列に指定できない場合、エラーが戻され、ユーティリティーは処理を停止します。
norowwarnings リジェクトされた行についてのすべての警告を抑止します。
periodignore この修飾子は、期間列のデータがデータ・ファイルに存在するが、無視できることをインポート・ユーティリティーに通知します。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。 この修飾子は、periodmissing 修飾子と共に使用することはできません。
periodmissing この修飾子が指定されている場合、 ユーティリティーは、期間列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、すべての期間列の値はユーティリティーによって生成されます。 この修飾子は、periodignore 修飾子と共に使用することはできません。
rowchangetimestampignore この修飾子は、行変更タイム・スタンプ列のデータがデータ・ファイルに存在するが、無視できることをインポート・ユーティリティーに通知します。 この結果、すべての ROW CHANGE TIMESTAMP はユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、rowchangetimestampmissing 修飾子と共に使用することはできません。
rowchangetimestampmissing この修飾子を指定すると、ユーティリティーは、行変更タイム・スタンプ列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS 列でも GENERATED BY DEFAULT 列でも同じです。 この修飾子は、rowchangetimestampignore 修飾子と共に使用することはできません。
seclabelchar 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、セキュリティー・ラベル値のストリング形式であることを示します。 IMPORT は、各セキュリティー・ラベルをロードする際に内部形式に変換します。 ストリングが適切な形式ではない場合、行はロードされず、警告 (SQLSTATE 01H53) が戻されます。 ストリングが表を保護するセキュリティー・ポリシーの一部である有効なセキュリティー・ラベルを表していない場合、行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3243W) が戻されます。

この修飾子は、seclabelname 修飾子が指定されているかどうかを指定することはできません。指定されていない場合、インポートは失敗し、エラー (SQLCODE SQL3525N) が戻されます。

seclabelname 入力ソース・ファイル内のセキュリティー・ラベルが、デフォルトのエンコードされた数値形式ではなく、名前によって指定されることを示します。 IMPORT はその名前を適切なセキュリティー・ラベル (存在する場合) に変換します。 表を保護するセキュリティー・ポリシーで、指定された名前のセキュリティー・ラベルが存在しない場合、 行はロードされず、警告 (SQLSTATE 01H53、SQLCODE SQL3244W) が戻されます。

この修飾子は、seclabelchar 修飾子が指定されているかどうかを指定することはできません。指定されていない場合、インポートは失敗し、エラー (SQLCODE SQL3525N) が戻されます。

注: ファイル・タイプが ASC の場合、セキュリティー・ラベルの名前に続くスペースは、名前の一部として解釈されます。 これを回避するには、striptblanks ファイル・タイプ修飾子を使用してスペースが除去されるようにします。
transactionidignore この修飾子は、TRANSACTION START ID 列のデータがデータ・ファイルに存在するが、無視できることをインポート・ユーティリティーに通知します。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。 この修飾子は、transactionidmissing 修飾子と共に使用することはできません。
transactionidmissing この修飾子が指定されている場合、 ユーティリティーは、TRANSACTION START ID 列のデータが入力データ・ファイルに入っていないものと見なします。 この修飾子が指定された場合、TRANSACTION START ID 列の値はユーティリティーによって生成されます。 この修飾子は、transactionidignore 修飾子と共に使用することはできません。
usedefaults ターゲット表の列のソース列が指定されているが、1 つ以上の行インスタンスのデータが入っていない場合は、デフォルト値がロードされます。 欠落データの例を以下に示します。
  • DEL ファイルの場合: 列の値として、2 つの連続した列区切り (,,) や、任意の数のスペースで分離した 2 つの連続する列区切り (, ,) が指定されている。
  • DEL/ASC ファイルの場合: 列が不足している行、または元の指定には十分な長さでない行。
    注: ASC ファイルの場合、NULL 列の値は明示的に欠落していると見なされず、NULL 列の値の代わりにデフォルトが使用されることはありません。 数値、日付、時刻、タイム・スタンプの列では、全桁スペース文字で NULL 列値を表記します。また、どのタイプの列でも、NULL INDICATOR を使用すれば、その列が NULL であることを示せます。
このオプションが指定されていない場合、行インスタンスのソース列にデータがないと、以下のいずれかの処理が行われます。
  • DEL/ASC ファイルの場合: 列が NULL 可能であれば、NULL がロードされます。 列が NULL 可能でない場合、ユーティリティーはその行をリジェクトします。
既存行を更新する場合に、主キーの一部である列の値の入力データが欠落している場合、INSERT_UPDATE モードで usedefaults ファイル・タイプ修飾子を使用することはできません。 既存行は更新されず、SQL3116W が返されます。
表 2. インポート・ユーティリティーで有効なファイル・タイプ修飾子: ASCII ファイル・フォーマット (ASC/DEL)
修飾子 説明
codepage=X x は、ASCII 文字ストリングです。 この値は、 入力データ・セット内のデータのコード・ページとして解釈されます。 インポート操作中に、文字データをこのコード・ページからアプリケーション・コード・ページに変換します。
以下の規則が適用されます。
  • 純 DBCS (GRAPHIC)、混合 DBCS、および EUC では、区切り文字は x00 から x3F の範囲に制限されます。
  • nullindchar では、標準の ASCII セットのコード・ポイント x20 から x7F の範囲に含まれているシンボルを指定する必要があります。 これは、ASCII 記号およびコード・ポイントを示します。
注:
  1. コード・ページがアプリケーションのコード・ページからデータベースのコード・ページに変換されているときにデータの拡張が発生する場合は、 データは切り捨てられ、データの消失が発生する可能性があります。
dateformat= "x" x は、ソースファイル内の日付の形式です。2 有効な日付エレメントは以下のとおりです。
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"
implieddecimal 暗黙指定されている小数点の位置が列定義によって決定され、 値の終わりにあるとは見なされなくなります。 例えば、値 12345 は、12345.00 ではなく123.45 として DECIMAL(8,2) 列にロードされます。
timeformat= "x" x は、ソースファイル内の時刻の形式です。2 有効な時間エレメントは以下のとおりです。
H
時 (12 時間制の場合は 0 から 12、24 時間制では 0 から 24 の範囲の 1 桁または 2 桁の数。)
HH
時 (12 時間制の場合は 00 から 12、24 時間制では 0 から 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 は、ソースファイル内のタイム・スタンプの形式です。2 有効なタイム・スタンプ・エレメントは以下のとおりです。
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 時間制では 0 から 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)
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'。 これらの値では、大/小文字は区別されません。

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

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

制約事項

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

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

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

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

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

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

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

注: IMPORT コマンドで xmlgraphic 修飾子を指定する場合、インポートする XML 文書は UTF-16 コード・ページでエンコードする必要があります。 そうしないと、XML 文書が構文解析エラーで拒否されたり、データ破損のある表にインポートされたりする可能性があります。
表 3. インポート・ユーティリティーで有効なファイル・タイプ修飾子: ASC (区切り文字で区切られていない ASCII) ファイル・フォーマット
修飾子 説明
nochecklengths nochecklengths が指定されていると、 ソース・データの列定義がターゲット表の列のサイズを超えるものであっても、 各行のインポートが試行されます。 このような行が正常にインポートされるのは、 コード・ページ変換でソース・データが縮小する場合です。 例えば、 ソースにある 4 バイトの EUC データがターゲットで 2 バイトの DBCS データに縮小すれば、 必要スペースは半分になります。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。
nullindchar=x x は、単一文字です。 null 値を示す文字を x に変更します。 x のデフォルト値は Yです。3

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

reclen=x x は、最大値が 32 767の整数です。各行に対して x 文字が読み取られ、行の終わりを示す改行文字は使用されません。
striptblanks データを可変長フィールドにロードする際に、後書きブランク・スペースを切り捨てます。 このオプションを指定しない場合、ブランク・スペースはそのまま保持されます。
次の例の場合、インポート・ユーティリティーは、 striptblanks によって後書きブランク・スペースを切り捨てます。
   db2 import from myfile.asc of asc
      modified by striptblanks
      method l (1 10, 12 15) messages msgs.txt
      insert into staff

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

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

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

表 4. インポート・ユーティリティーで有効なファイル・タイプ修飾子: DEL (区切り文字で区切られている ASCII) ファイル・フォーマット
修飾子 説明
chardelx x は単一文字のストリング区切り文字です。 デフォルト値は二重引用符 (") です。 指定された文字は、文字 ストリングを囲むために二重引用符の代わりに使用されます。34 二重引用符を文字ストリング区切り文字として明示的に指定する場合は、次のように指定できます。
    modified by chardel""
単一引用符 (') も、文字ストリングの区切り文字として指定できます。 以下の例では、chardel'' が指定されており、 インポート・ユーティリティーは検出するすべての単一引用符 (') を文字ストリングの区切り文字として解釈します。
   db2 "import from myfile.del of del
      modified by chardel''
      method p (1, 4) insert into staff (id, years)"
coldelx x は単一文字の列区切り文字です。 デフォルト値はコンマ (,) です。指定された文字は、列の終わりを示すためにコンマの代わりに使用されます。34
以下の例では、coldel; が指定されており、 インポート・ユーティリティーは検出するすべてのセミコロン (;) を列の区切り文字として解釈します。
   db2 import from myfile.del of del
      modified by coldel;
      messages msgs.txt insert into staff
decplusblank 正符号文字。 正の 10 進数値の前に、正符号 (+) の代わりにブランク・スペースを付けます。デフォルトのアクションは、正の 10 進数値の前に正符号を付けることです。
decptx x は、小数点文字としてピリオドの代わりに使用される単一の文字です。 デフォルト値はピリオド (.) です。指定された文字は、小数点 文字としてピリオドの代わりに使用されます。34
以下の例では、decpt; が指定されており、 インポート・ユーティリティーは検出するすべてのセミコロン (;) を小数点として解釈します。
   db2 "import from myfile.del of del
      modified by chardel''
      decpt; messages msgs.txt insert into staff"
delprioritychar 区切り文字の現在のデフォルト優先順位は、(1) レコード区切り文字、(2) 区切り文字、(3) 列区切り文字です。 この修飾子を使用すると、区切り文字の優先順位が (1) 区切り文字、(2) レコード区切り文字、(3) 列区切り文字に戻り、 以前の優先順位に依存している既存のアプリケーションが保護されます。 構文:
   db2 import ... 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 が挿入されます。
nochardel インポート・ユーティリティーは、列区切り文字の間にあるすべてのバイトを列のデータの一部であると見なします。 文字区切り文字は、列データの一部として構文解析されます。 このオプションは、データが Db2 を使用してエクスポートされたかどうかを指定することはできません (エクスポート時に nochardel が指定されていない場合)。 これは、区切り文字のないベンダー・データ・ファイルをサポートするために提供されます。 不適切に使用すると、データが損失または破壊される場合があります。

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

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

固定長ターゲット・フィールドに、 そのデータが入るだけの十分な大きさがあるかどうかがチェックされます。 nochecklengths が指定されていると、 チェックは実行されず、各行のインポートが試行されます。

indexixf 既存の表に現在定義されている索引をすべてドロップし、 PC/IXF ファイルの索引定義に基づいて新しい索引を作成するようにユーティリティーに指示します。 このオプションを使用できるのは、表の内容を置換する場合だけです。 ビューでは使用できません。 また、insert-column が指定されている場合にも使用できません。
注: indexixf パラメーターは非推奨になっており、将来のリリースで削除される可能性があります。 詳しくは、IMPORT コマンド・オプション CREATE および REPLACE_CREATE は非推奨になことを参照してください。
indexschema=スキーマ 指定した schema を、索引作成時の索引名として使用します。 schema を指定しなかった場合 (しかしキーワード indexschema は指定した 場合) には、接続ユーザー ID が使用されます。 このキーワードを指定しない場合、IXF ファイルのスキーマが使用されます。
nochecklengths nochecklengths が指定されていると、 ソース・データの列定義がターゲット表の列のサイズを超えるものであっても、 各行のインポートが試行されます。 このような行が正常にインポートされるのは、 コード・ページ変換でソース・データが縮小する場合です。 例えば、 ソースにある 4 バイトの EUC データがターゲットで 2 バイトの DBCS データに縮小すれば、 必要スペースは半分になります。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。
forcecreate インポート操作中に SQL3311N を返した後で、欠落している可能性のある情報または限定された情報を使用して表を作成できることを指定します。
表 6. codepage および usegraphiccodepage 使用時の IMPORT 動作
codepage=N usegraphiccodepage IMPORT 動作
なし なし ファイル内のすべてのデータは、アプリケーション・コード・ページであると見なされます。
あり なし ファイル内のすべてのデータは、コード・ページ N であると見なされます。

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

なし あり ファイル内の文字データは、アプリケーション・コード・ページであると見なされます。 GRAPHIC データは、アプリケーション GRAPHIC データのコード・ページであると見なされます。

アプリケーション・コード・ページが 1 バイトの場合は、すべてのデータはアプリケーション・コード・ページであると見なされます。

警告: アプリケーション・コード・ページが 1 バイトの場合、 GRAPHIC データは、データベースにたとえ GRAPHIC 列が収められていても、 データベースにインポートされると壊れます。

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

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

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

注:
  1. サポートされていないファイル・タイプを MODIFIED BY オプションで使用しようとしても、インポート・ユーティリティーは警告を出しません。 この場合、インポート操作が失敗し、エラー・コードが戻されます。
  2. 日付形式ストリングは必ず二重引用符で囲まなければなりません。 フィールド区切り文字には、 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;) を付けなければなりません。

  3. chardel、coldel、または decpt ファイル・タイプ修飾子に提供される文字値は、ソース・データのコード・ページで指定する必要があります。
    文字コード・ポイント (文字シンボルの代わり) は、構文 xJJ または 0xJJを使用して指定できます。ここで、JJ はコード・ポイントの 16 進表記です。 例えば、列区切りとして # 文字を指定するには、以下のステートメントのいずれかを使用します。
       ... modified by coldel# ...
       ... modified by coldel0x23 ...
       ... modified by coldelX23 ...
  4. データ移動のための区切り文字の制約事項に、区切り文字の指定変更として使用できる文字に適用される制限のリストが示されています。
  5. 以下のファイル・タイプ修飾子は、ニックネームにインポートするときには使用できません。
    • indexixf
    • indexschema
    • dldelfiletype
    • nodefaults
    • usedefaults
    • no_type_idfiletype
    • generatedignore
    • generatedmissing
    • identityignore
    • identitymissing
    • lobsinfile
  6. CREATE モードは、XML 列ではサポートされません。
  7. すべての XML データは、メイン・データ・ファイルとは別の XML ファイル内に存在する必要があります。 XML Data Specifier (XDS) (または NULL 値) が、メイン・データ・ファイル内の XML 列ごとに存在する必要があります。
  8. XMLCHAR または XMLGRAPHIC ファイル・タイプ修飾子が指定されていなければ、 XML 文書は Unicode 形式であるか、またはエンコード属性のある宣言タグを含むと想定されます。
  9. 整形式でない文書が含まれている行はリジェクトされます。
  10. XMLVALIDATE オプションが指定されている場合、対応するスキーマに対して正常に妥当性検査された文書は、挿入される際にスキーマ情報がアノテーションとして付加されます。 対応するスキーマに対する妥当性検査が失敗した文書を含む行は、リジェクトされます。 妥当性検査を正常に行うためには、インポートを起動するユーザーの保持する特権に、 次の 1 つ以上が含まれている必要があります。
    • DBADM 権限
    • 妥当性検査に使用する XML スキーマに対する USAGE 特権
  11. ignoreincludemissingoverride が接尾部に付された複数の修飾子が指定されると、それらの修飾子はリストされた順に適用されます。 以下のステートメントの場合、入力データに ID 列ではない暗黙的な非表示列のデータが含まれます。 一方、暗黙的に非表示かどうかに関係なく、ID 列のデータは含まれません。
    db2 import from delfile1 of del modified by 
       implicitlyhiddeninclude identitymissing insert into table1 
    しかし、以下のステートメントにおいてファイル・タイプ修飾子の順序を変更すると、入力データにすべての暗黙的な非表示列のデータ (非表示の ID 列も含む) が含まれることになります。 一方、暗黙的に非表示でない ID 列のデータは含まれません。
    db2 import from delfile1 of del modified by 
       identitymissing implicitlyhiddeninclude insert into table1 
    DB2_DMU_DEFAULT レジストリー変数が IMPLICITLYHIDDENINCLUDE に設定されている場合:
    db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
    db2 import from delfile1 of del modified by identitymissing insert into table1
    これは、以下と同じ意味になります。
    db2 import from delfile1 of del modified by 
       implicitlyhiddeninclude identitymissing insert into table1