外部ファイルのデータを、サポートされているファイル・フォーマットで表、階層、ビュー、またはニックネームに挿入します。 LOAD はより高速な代替方法です。しかしロード・ユーティリティーでは、階層レベルのデータのロードはサポートされていません。
インポート・ユーティリティー用のファイル・タイプ修飾子へのクイック・リンク。
データベース。 暗黙接続が可能な場合には、デフォルト・データベースへの接続が確立されます。 Linux、UNIX、または Windows クライアントから Linux、UNIX、または Windows データベース・サーバーへのユーティリティー・アクセスは、DB2 Connect™ ゲートウェイまたはループバック環境を経由してではなく、エンジンを使用した直接接続でなければなりません。
>>-IMPORT FROM--filename--OF--filetype--------------------------> >--+-------------------------+--+------------------------+------> | .-,--------. | | .-,--------. | | V | | | V | | '-LOBS FROM----lob-path-+-' '-XML FROM----xml-path-+-' >--+-------------------------------+----------------------------> | .--------------. | | V | | '-MODIFIED BY----filetype-mod-+-' >--+-------------------------------------------------------------------------------------------------------+--> | .-,------------------------. | | V | | '-METHOD--+-L--(----column-start--column-end-+--)--+------------------------------------------------+-+-' | | .-,-------------------. | | | | V | | | | '-NULL INDICATORS--(----null-indicator-list-+--)-' | | .-,-----------. | | V | | +-N--(----column-name-+--)------------------------------------------------------------------+ | .-,---------------. | | V | | '-P--(----column-position-+--)--------------------------------------------------------------' >--+------------------------------------+-----------------------> '-XMLPARSE--+-STRIP----+--WHITESPACE-' '-PRESERVE-' >--+--------------------------------------------------------------------------------------+--> '-XMLVALIDATE USING--+-XDS--+-----------------------+--| Ignore and Map parameters |-+-' | '-DEFAULT--schema-sqlid-' | +-SCHEMA--schema-sqlid------------------------------------------+ '-SCHEMALOCATION HINTS------------------------------------------' .-ALLOW NO ACCESS----. >--+--------------------+--+----------------------------+-------> '-ALLOW WRITE ACCESS-' '-COMMITCOUNT--+-n---------+-' '-AUTOMATIC-' >--+---------------------+--+-------------+---------------------> '-+-RESTARTCOUNT-+--n-' '-ROWCOUNT--n-' '-SKIPCOUNT----' >--+-----------------+--+-----------+---------------------------> '-WARNINGCOUNT--n-' '-NOTIMEOUT-' >--+------------------------+-----------------------------------> '-MESSAGES--message-file-' >--+-+-INSERT---------+--INTO--+-table-name--+-------------------------+-+----------------------+->< | +-INSERT_UPDATE--+ | | .-,-------------. | | | | +-REPLACE--------+ | | V | | | | | '-REPLACE_CREATE-' | '-(----insert-column-+--)-' | | | '-| hierarchy description |---------------' | '-CREATE--INTO--+-table-name--+-------------------------+--------------+--| tblspace-specs |-' | | .-,-------------. | | | | V | | | | '-(----insert-column-+--)-' | '-| hierarchy description |--+-AS ROOT TABLE---------+-' '-UNDER--sub-table-name-' Ignore and Map parameters |--+--------------------------------+---------------------------> | .-,------------. | | V | | '-IGNORE--(----schema-sqlid-+--)-' >--+----------------------------------------------------+-------| | .-,-----------------------------------. | | V | | '-MAP--(----(--schema-sqlid--,--schema-sqlid--)-+--)-' hierarchy description .-ALL TABLES---------. |--+-| sub-table-list |-+--+----+-------------------------------> '-IN-' >--HIERARCHY--+-STARTING--sub-table-name-+----------------------| '-| traversal-order-list |-' sub-table-list .-,-------------------------------------------. V | |--(----sub-table-name--+-------------------------+-+--)--------| | .-,-------------. | | V | | '-(----insert-column-+--)-' traversal-order-list .-,--------------. V | |--(----sub-table-name-+--)-------------------------------------| tblspace-specs |--+----------------------------------------------------------------------------------+--| '-IN--tablespace-name--+---------------------------+--+--------------------------+-' '-INDEX IN--tablespace-name-' '-LONG IN--tablespace-name-'
ニックネームにインポートするときには、このパラメーターは無効です。
db2 load from datafile1.del of del method P(1, 3, 4)
replace into table1 (c1, c3, c4)
NULL 標識列中の Y の値は、その列データが NULL であることを指定します。 NULL 標識列に Y 以外 の文字を指定した場合は、列データが NULL ではなく、METHOD L オプションで指定された列データがインポートされることを指定することになります。
nullindchar ファイル・タイプ修飾子を指定した MODIFIED BY オプションを使用すれば、NULL 標識文字を変更することができます。
DEFAULT、IGNORE、および MAP 節を使用することにより、スキーマ決定の動作を変更することができます。 これら 3 つの節はオプションであり、相互に適用されるのではなく XDS の指定に直接適用されます。 例えば、DEFAULT 節で指定されているためにあるスキーマが選択された場合、それが IGNORE 節で指定されていたとしても無視されることはありません。 同じように、MAP 節のペアの最初の部分で指定されているためにあるスキーマが選択された場合、それが別の MAP 節のペアの 2 番目の部分で指定されていたとしても再びマップされることはありません。
DEFAULT 節は、IGNORE 節および MAP 節よりも優先されます。 XDS が DEFAULT 節を満たすなら、IGNORE と MAP の指定は無視されます。
あるスキーマが IGNORE 節の中で指定されている場合、MAP 節のスキーマ・ペアの左辺にそれを含めることはできません。
IGNORE 節は XDS にのみ適用されます。 あるスキーマが IGNORE 節によって指定されていても、それが MAP 節によってマップされているなら、それ以降そのスキーマが無視されることはありません。
あるスキーマが MAP 節のスキーマ・ペアの左辺で指定されている場合、IGNORE 節でさらにそれを指定することはできません。
スキーマ・ペアのマッピングが適用されたなら、その結果は最終的なものです。 マッピング操作は推移的ではないため、選択されたスキーマが、それ以降に別のスキーマ・ペアのマッピングに適用されることはありません。
スキーマを複数回マップすることはできません。 つまり、複数のペアの左辺に指定することはできません。
アプリケーションは強制的にデータベースから切断され、現在の作業単位はロールバックされます。 インポート操作を再試行する際に既にコミットされた行を処理しないようにするには、 RESTARTCOUNT または SKIPCOUNT コマンド・パラメーターを使用します。
ニックネームにインポートするときには、このパラメーターは無効です。
このオプションでは、CREATE TABLE ステートメントの NOT LOGGED INITIALLY (NLI) 節、あるいは ALTER TABLE ステートメントの ACTIVE NOT LOGGED INITIALLY 節は考慮されません。
このオプションは、システム期間テンポラル表へのデータのインポートには使用できません。
NLI 節が呼び出される CREATE TABLE または ALTER TABLE ステートメントと同じトランザクションの中で、REPLACE オプションの指定されたインポートが実行された場合、インポートにおいてその NLI 節は考慮されません。すべての挿入操作がログ対象となります。
この制限は、DB2 Universal Database™ バージョン 7 および DB2 バージョン 8 に適用されます。
表が既にある場合には、 データ・オブジェクトを切り捨てることによって表内の既存のデータすべてを削除し、 表定義や索引定義は変えることなく、インポートしたデータを挿入します。
表がまだない場合には、データベースのコード・ページで、 表と索引の定義と行の内容を作成します。 制約事項のリストは、『インポート済みの表の再作成』 を参照してください。
このオプションは、IXF ファイルの場合にのみ使用することができます。 階層間でデータを移動する際にこのオプションを使用する場合は、 階層全体に関係したデータだけが置き換えられます。副表は置き換えられません。
ニックネームにインポートするときには、このパラメーターは無効です。
以前のサーバーの場合を除き、INSERT、INSERT_UPDATE、または REPLACE オプションには、完全修飾または非修飾の表名を使用しなければならないようなときでも、別名を使用することができます。修飾された表名は、schema.tablename の形式になります。 schema には、表作成時のユーザー名が入ります。
db2 import from delfile1 of del
insert into table1 (c1, c2, c3,...)
db2 import from delfile1 of del modified by implicitlyhiddeninclude
insert into table1
db2set DB2_DMU_DEFAULT=IMPLICITLYHIDDENINCLUDE
db2 import from delfile1 of del insert into table1
データベースのコード・ページで表の定義と行の内容を作成します。 DB2 の表、副表、または階層からエクスポートされたデータの場合、索引も作成されます。このオプションが階層に対するものである場合に、DB2 からデータがエクスポートされると、タイプ階層も作成されます。このオプションは、IXF ファイルの場合にのみ使用することができます。
ニックネームにインポートするときには、このパラメーターは無効です。
例 1
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 列がある表へのインポート)
TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS ID 列である点が異なります。
"Liszt"
"Hummel",,187.43, H
"Grieg",100, 66.34, G
"Satie",101, 818.23, I
"Liszt", 74.49, A
"Hummel", 0.01, H
"Grieg", 66.34, G
"Satie", 818.23, I
db2 import from datafile1.del of del replace into table1
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
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
DATAFILE1 を TABLE2 に、IDENTITY 関連のファイル・タイプ修飾子を使用せずにインポートした場合、行 1 と 2 は挿入されますが、行 3 と 4 はリジェクトされます。 その理由は、それらが固有の非 NULL 値を提供し、IDENTITY 列が GENERATED ALWAYS であるからです。
例 1 (XMLVALIDATE USING XDS)
XMLVALIDATE USING XDS
IGNORE (S1.SCHEMA_A)
MAP ((S1.SCHEMA_A, S2.SCHEMA_B))
S1.SCHEMA_A の IGNORE が S1.SCHEMA_A から S2.SCHEMA_B への MAP と矛盾しているため構文が無効であり、インポートは失敗します。例 2 (XMLVALIDATE USING XDS)
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 FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして "S8.SCHEMA_H" が指定されているため、ファイル "xmlfile.001.xml" に含まれる文書は、SQL ID が "S8.SCHEMA_H" である 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 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 FIL='xmlfile.004.xml' SCH='S11.SCHEMA_K' />
ファイル "xmlfile.004.xml" に含まれる文書は、SQL ID が "S11.SCHEMA_K" である XML スキーマを使用して妥当性検査されます。
この場合、DEFAULT、IGNORE、 または MAP の指定のいずれも適用されないことに注意してください。例 3 (XMLVALIDATE USING XDS)
XMLVALIDATE USING XDS
DEFAULT S1.SCHEMA_A
IGNORE (S1.SCHEMA_A)
<XDS FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして "S1.SCHEMA_1" が指定されているため、ファイル "xmlfile.001.xml" に含まれる文書は、SQL ID が "S1.SCHEMA_A" である XML スキーマを使用して妥当性検査されます。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
使用するスキーマとして XDS で指定されているのは "S1.SCHEMA_A" ですが、このスキーマは IGNORE 節に含まれているため、ファイル "xmlfile.002" に含まれる文書のスキーマ妥当性検査は実行されません。例 4 (XMLVALIDATE USING XDS)
XMLVALIDATE USING XDS
DEFAULT S1.SCHEMA_A
MAP ((S1.SCHEMA_A, S2.SCHEMA_B), (S2.SCHEMA_B, S1.SCHEMA_A))
<XDS FIL='xmlfile.001.xml' />
使用するデフォルト・スキーマとして "S1.SCHEMA_1" が指定されているため、ファイル "xmlfile.001.xml" に含まれる文書は、SQL ID が "S1.SCHEMA_A" である XML スキーマを使用して妥当性検査されます。
DEFAULT 節が適用されたため、それ以降 MAP 節は適用されないことに注意してください。したがって、この場合、スキーマ "S1.SCHEMA_A からスキーマ "S2.SCHEMA_B" へのマッピングは適用されません。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
ファイル "xmlfile.002.xml" に含まれる文書は、SQL ID が "S2.SCHEMA_B" である XML スキーマを使用して妥当性検査されます。
これは、MAP 節でスキーマ "S1.SCHEMA_A" をスキーマ "S2.SCHEMA_B" にマップすることが指定されているためです。それ以外のマッピングは実行されないため、この場合、スキーマ "S2.SCHEMA_B" からスキーマ "S1.SCHEMA_A" へのマッピングは適用されないことに注意してください。<XDS FIL='xmlfile.003.xml' SCH='S2.SCHEMA_B' />
ファイル "xmlfile.003.xml" に含まれる文書は、SQL ID が "S1.SCHEMA_A" である XML スキーマを使用して妥当性検査されます。
これは、MAP 節でスキーマ "S2.SCHEMA_B" をスキーマ "S1.SCHEMA_A" にマップすることが指定されているためです。それ以外のマッピングは実行されないため、この場合、スキーマ "S1.SCHEMA_A" からスキーマ "S2.SCHEMA_B" へのマッピングは適用されないことに注意してください。例 5 (XMLVALIDATE USING SCHEMA)
XMLVALIDATE USING SCHEMA S2.SCHEMA_B
<XDS FIL='xmlfile.001.xml' />
ファイル xmlfile.001.xml に含まれる文書は、SQL ID が "S2.SCHEMA_B" の XML スキーマを使用して妥当性検査されます。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
ファイル "xmlfile.002.xml" に含まれる文書は、SQL ID が "S2.SCHEMA_B" の XML スキーマを使用して妥当性検査されます。
妥当性検査は USING SCHEMA 節で指定されたスキーマを使用して実行されるため、SCH 属性は無視されることに注意してください。例 6 (XMLVALIDATE USING SCHEMALOCATION HINTS)
<XDS FIL='xmlfile.001.xml' />
使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。
その属性が指定されていない場合、妥当性検査は実行されません。<XDS FIL='xmlfile.002.xml' SCH='S1.SCHEMA_A' />
使用される XML スキーマは、文書の内容として含まれる schemaLocation 属性によって決まります。
その属性が指定されていない場合、妥当性検査は実行されません。
妥当性検査は SCHEMALOCATION
HINTS を使用して実行されるため、SCH 属性は無視されることに注意してください。インポート操作を開始する前に、すべての表操作が完了し、すべてのロックがペンディング解除になっていることを確認してください。 これは、WITH HOLD でオープンされた、 すべてのカーソルをクローズした後で COMMIT または ROLLBACK を発行することによって行われます。
このユーティリティーは、REPLACE または REPLACE_CREATE 操作時に以前の行が削除された後、自動 COMMIT を実行します。したがって、表オブジェクトが切り捨てられた後、システムに障害が起こったり、 アプリケーションがデータベース・マネージャーに割り込んだりすると、 元のデータがすべて失われてしまいます。 これらのオプションを使用する前に、 元のデータがもはや必要ないことを確認してください。
CREATE、REPLACE、または REPLACE_CREATE 操作時にログが満杯になると、 このユーティリティーは挿入されたレコードに対して自動 COMMIT を実行します。自動 COMMIT の後に、システムに障害が起こるか、 またはアプリケーションがデータベース・マネージャーに割り込むと、 部分的にデータの挿入された表はデータベース内に残ります。 REPLACE または REPLACE_CREATE オプションを使用してインポート操作全体をやり直すか、または正常にインポートされる行の数に設定した RESTARTCOUNT パラメーターを指定して INSERT を使用してください。
インポート・ユーティリティーが COMMIT を実行するたびに、 2 つのメッセージがメッセージ・ファイルに書き込まれます。 一方は、コミットされるレコードの数を示し、もう一方は、 COMMIT の成功後に書き込まれます。 障害の後にインポート操作を再開するときには、 スキップするレコードの数 (最後の正常なコミットから判別される) を指定してください。
インポート・ユーティリティーでは、 多少の非互換性問題がある入力データは受け入れられます (例えば、 文字データは埋め込みまたは切り捨てを用いてインポートできます。 数値データは異なる数値データ・タイプを用いてインポートできます)。 しかし、大きな非互換性問題のあるデータは受け入れられません。
外部キーの再作成中にエラーが発生する場合、 参照整合性を保守するためにデータを変更してください。
参照制約および外部キー定義は、PC/IXF ファイルから表を再作成する場合は保存されません。 (主キー定義は、データが前に SELECT * を使ってエクスポートされた場合、保存されます。)
リモート・データベースへのインポートでは、サーバーに、 入力データ・ファイルのコピー、出力メッセージ・ファイル、 およびデータベースのサイズ拡大を見込んだ十分なディスク・スペースが必要とされます。
インポート操作がリモート・データベースに対して実行され、 出力メッセージ・ファイルが非常に長くなった (60 KB を超過) 場合、 クライアントのユーザーに戻されるメッセージ・ファイルで、インポート操作中にメッセージが欠落する可能性があります。 メッセージ情報の最初の 30 KB と最後の 30 KB は、常に保持されます。
PC/IXF ファイルのリモート・データベースへのインポートは、 PC/IXF ファイルがディスケットにあるときよりも、 ハード・ディスクにあるときの方がより速く行うことができます。
データベース表または階層が存在していないと、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 ファイルのすべてのデータは、 そのファイルのコード・ページからアプリケーションのコード・ページに変換されます。 それぞれのコード・ページが異なっており、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 OS/390®、DB2 for VM and VSE、および DB2 for OS/400® などの DRDA® サーバーにデータをインポートすることができます。 サポートされているのは、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 と同じディレクトリーで使用できます。
内部形式のセキュリティー・ラベルには、改行文字が含まれている可能性があります。 DEL ファイル形式を使用してファイルをインポートする場合、それらの改行文字が間違って区切りと解釈される可能性があります。 この問題が発生する場合は、IMPORT コマンドで delprioritychar ファイル・タイプ修飾子を指定することによって、区切り文字に関して以前に使用されていた古いデフォルト優先順位を使用してください。
暗黙的な非表示列がデータベース表に含まれている場合には、インポート操作に非表示列のデータを含めるかどうかを指定する必要があります。
IMPORT ユーティリティーは、表内の列数とデータ・ファイル内のフィールド数の突き合わせを行いません。このユーティリティーは、データ・ファイル内に十分な量のデータがあるかどうかをチェックします。データ・ファイル内の行に十分なデータ列が含まれていない場合、その行は拒否されて警告メッセージが表示される (表の対応するデータのない列が NOT NULL として定義されている場合) か、警告メッセージは表示されずに正常に挿入されます (表の対応する列が NULL として定義されている場合)。一方、行に必要な数より多くの列が含まれている場合、必要な数の列が処理され、残りのデータ列は省略されます。警告メッセージは表示されません。
IMPORT コマンドで INSERT、UPDATE、または INSERT_UPDATE コマンド・パラメーターを使用するときには、関係するニックネームに対する CONTROL 特権があることを確認してください。インポート操作で使用したいニックネームが既に存在することを確認する必要があります。 そのほかにも、IMPORT コマンド・パラメーターのセクションに記載されているようないくつかの制約事項に注意する必要があります。
ODBC などの一部のデータ・ソースでは、ニックネームへのインポートはサポートされていません。
修飾子 | 説明 |
---|---|
compound=x | x は 1 から 100 の数字です。
非アトミック・コンパウンド SQL を使用してデータを挿入します。
毎回 x 個のステートメントが試行されます。
この修飾子が指定され、トランザクション・ログに十分な大きさがない場合、インポート操作は失敗します。 トランザクション・ログは、COMMITCOUNT によって指定された行数か、または COMMITCOUNT が指定されていない場合はデータ・ファイルの行数を入れる十分な大きさが必要です。したがって、トランザクション・ログのオーバーフローを避けるために、COMMITCOUNT オプションを指定することをお勧めします。 この修飾子は、INSERT_UPDATE モード、階層表、および修飾子 usedefaults、identitymissing、identityignore、generatedmissing、generatedignore とは互換性がありません。 |
generatedignore | この修飾子は、インポート・ユーティリティーに、すべての生成列のデータはデータ・ファイルに存在するが、それらを無視すべきことを知らせます。 この結果として、生成列のすべての値は、このユーティリティーによって生成されます。 この修飾子は、generatedmissing 修飾子と共に使用することはできません。 |
generatedmissing | この修飾子が指定されている場合、 ユーティリティーは、 生成列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、 行ごとに値を生成します。 この修飾子は、generatedignore 修飾子と共に使用することはできません。 |
identityignore | この修飾子は、インポート・ユーティリティーに、ID 列のデータはデータ・ファイルに存在するが、それらを無視すべきことを知らせます。 この結果として、すべて ID 値はこのユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 つまり、GENERATED ALWAYS 列の場合には、リジェクトされる行はありません。 この修飾子は、identitymissing 修飾子とともに使用することはできません。 |
identitymissing | この修飾子を指定すると、ユーティリティーは、ID 列のデータが入力データ・ファイルに入っていない (NULL も入っていない) ものと見なし、行ごとに値を生成します。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT のどちらの ID 列の場合も同じです。 この修飾子は、identityignore 修飾子とともに使用することはできません。 |
implicitlyhiddeninclude | この修飾子が指定されている場合、ユーティリティーは、入力データ・ファイルに暗黙非表示列へのデータが含まれると見なし、そのデータもインポートします。この修飾子は、 implicitlyhiddenmissing 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、注: セクションを参照してください。 |
implicitlyhiddenmissing | この修飾子を指定すると、ユーティリティーは入力データ・ファイルに暗黙的な非表示列のデータが含まれないと見なし、ユーティリティーがそれらの暗黙的な非表示列の値を生成します。 この修飾子は、 implicitlyhiddeninclude 修飾子と共に使用することはできません。 複数の修飾子が指定されている場合の優先順位については、注: セクションを参照してください。 |
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 つの副表にインポートする場合にのみ有効です。これを使う場合として典型的な例は、REGULAR 表からデータをエクスポートした後、この修飾子を使ってインポート操作を呼び出してそのデータを単一の副表に変換する場合です。 |
nodefaults | ターゲット表の列に対応するソース列が明示的に指定されていない場合、その表列が 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 つ以上の行インスタンスのデータが入っていない場合は、デフォルト値がロードされます。
欠落データの例を以下に示します。
|
修飾子 | 説明 |
---|---|
codepage=x | x は、ASCII 文字ストリングです。この値は、
入力データ・セット内のデータのコード・ページとして解釈されます。
インポート操作中に、文字データをこのコード・ページからアプリケーション・コード・ページに変換します。
以下の規則が適用されます。
注:
|
dateformat="x" | x はソース・ファイルの日付のフォーマットです。2 有効な日付エレメントは以下のとおりです。
デフォルト値の 1 が、指定されない各エレメントに割り当てられます。
日付形式の例を以下に示します。
|
implieddecimal | 暗黙指定されている小数点の位置が列定義によって決定され、 値の終わりにあるとは見なされなくなります。 例えば、値 12345 は、12345.00 ではなく、123.45 として DECIMAL(8,2) 列にロードされます。 |
timeformat="x" | x はソース・ファイル内の時刻のフォーマットです。2 有効な時刻エレメントは以下のとおりです。
指定されない各エレメントには、デフォルト値の 0 が割り当てられます。
時刻フォーマットの例を以下に示します。
|
timestampformat="x" | x はソース・ファイル内のタイム・スタンプのフォーマットです。2 有効なタイム・スタンプ・エレメントは以下のとおりです。
YYYY、M、MM、D、DD、または DDD エレメントが指定されていない場合、デフォルト値の 1 が割り当てられます。
MMM エレメントが指定されていない場合、デフォルト値の「Jan」が割り当てられます。
他のエレメントが指定されていない場合には、デフォルト値の 0 が割り当てられます。
タイム・スタンプ・フォーマットの例を以下に示します。
MMM エレメントの有効な値は、
「jan」、「feb」、「mar」、「apr」、「may」、「jun」、「jul」、「aug」、 次の例では、ユーザー定義の日時形式を指示するデータを、schedule という表にインポートする方法を示します。
|
usegraphiccodepage | usegraphiccodepage が指定された場合、GRAPHIC または 2 バイト文字ラージ・オブジェクト (DBCLOB) データ・フィールドにインポートされるデータは、GRAPHIC コード・ページであると見なされます。
データの残りは、文字コード・ページであると見なされます。
GRAPHIC コード・ページは、文字コード・ページと関連付けられます。
IMPORT は、codepage 修飾子 (指定されている場合)、
または codepage 修飾子が指定されていない場合はアプリケーションのコード・ページを介して、
文字コード・ページを決定します。
この修飾子は、リカバリーされている表に GRAPHIC データがある場合にのみ、 ドロップ済み表のリカバリーによって生成された区切りデータ・ファイルとともに使用される 必要があります。 制約事項 EXPORT ユーティリティーで作成された DEL ファイルは、1 つのコード・ページのみでエンコードされたデータを含んでいるため、これらのファイルで usegraphiccodepage 修飾子を指定することはできません。 usegraphiccodepage 修飾子はまた、ファイル内の 2 バイト文字ラージ・オブジェクト (DBCLOB) には無視されます。 |
xmlchar | XML 文書が文字コード・ページでエンコードされていることを示します。
このオプションは、指定の文字コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。 各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は文字コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 文字コード・ページは codepage ファイル・タイプ修飾子で指定されている値であるか、 または指定がない場合はアプリケーションのコード・ページであることに注意してください。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。 |
xmlgraphic | XML 文書が指定された GRAPHIC コード・ページでエンコードされていることを示します。
このオプションは、特定の GRAPHIC コード・ページでエンコードされていても エンコード宣言を含まない XML 文書を処理するために役立ちます。 各文書で、宣言タグが存在してエンコード属性が含まれる場合、 そのエンコード方式は GRAPHIC コード・ページと一致する必要があります。 一致しない場合、その文書を含む行はリジェクトされます。 GRAPHIC コード・ページは codepage ファイル・タイプ修飾子で指定されている値のグラフィック・コンポーネントであるか、または指定がない場合はアプリケーションのコード・ページのグラフィック・コンポーネントであることに注意してください。 デフォルトでは、文書は Unicode でエンコードされているか、またはエンコード属性のある宣言タグを含んでいます。 注: xmlgraphic 修飾子が IMPORT コマンドで指定されている場合、インポートされる XML 文書は、UTF-16 コード・ページでエンコードされていなければなりません。そうでない場合、XML 文書は構文解析エラーで拒否されるか、またはデータ破損のある状態で表にインポートされる場合があります。
|
修飾子 | 説明 |
---|---|
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 によって後書きブランク・スペースを切り捨てます。
このオプションは、 striptnulls と一緒に指定することはできません。 これらは、相互に排他的なオプションです。このオプションは、廃止された t オプション (下位互換性のためだけにサポートされる) に代わるものです。 |
striptnulls | データを可変長フィールドにロードする際に、後書き NULL (0x00 文字) を切り捨てます。
このオプションを指定しない場合、NULL はそのまま保持されます。
このオプションは、striptblanks と一緒に指定することはできません。 これらは、相互に排他的なオプションです。このオプションは、廃止された padwithzero オプション (下位互換性のためだけにサポートされる) に代わるものです。 |
修飾子 | 説明 |
---|---|
chardelx | x は単一文字のストリング区切り文字です。
デフォルト値は二重引用符 (") です。
指定した文字は、文字ストリングを囲むために、二重引用符の代わりに使用されます。
34 文字ストリング区切り文字として明示的に二重引用符を指定する場合、次のように指定します。
単一引用符 (') も、文字ストリングの区切り文字として指定できます。
以下の例では、chardel'' が指定されており、
インポート・ユーティリティーは検出するすべての単一引用符 (') を文字ストリングの区切り文字として解釈します。
|
coldelx | x は単一文字の列区切り文字です。
デフォルト値はコンマ (,) です。
指定した文字は、列の終わりを表すために、コンマの代わりに使用されます。34
以下の例では、coldel; が指定されており、
インポート・ユーティリティーは検出するすべてのセミコロン (;) を列の区切り文字として解釈します。
|
decplusblank | 正符号文字。正の 10 進値の接頭部として、正符号 (+) ではなくブランク・スペースを使用します。 デフォルトのアクションでは、正の 10 進数の前に正符号 (+) が付けられます。 |
decptx | x は、小数点文字としてピリオドの代わりに使用される単一文字です。
デフォルト値はピリオド (.) です。指定した文字は、小数点文字としてピリオドの代わりに使用されます。34
以下の例では、decpt; が指定されており、
インポート・ユーティリティーは検出するすべてのセミコロン (;) を小数点として解釈します。
|
delprioritychar | 区切り文字の現在のデフォルト優先順位は、(1) レコード区切り文字、(2) 区切り文字、(3) 列区切り文字です。
この修飾子を使用すると、区切り文字の優先順位が
(1) 区切り文字、(2) レコード区切り文字、(3) 列区切り文字に戻り、
以前の優先順位に依存している既存のアプリケーションが保護されます。
構文は以下のとおりです。
例えば、以下のような DEL データ・ファイルがあるとします。
delprioritychar 修飾子を指定しているので、このデータ・ファイルは、2 行だけになります。2 番目の <row delimiter> は 2 番目の行の最初のデータ列の一部と解釈されますが、1 番目と 3 番目の <row delimiter> は実レコードの区切り文字と解釈されます。 この修飾子が指定されていない 場合、 このデータ・ファイルでは 3 行になり、各行は <row delimiter> によって区切られます。 |
keepblanks | タイプが CHAR、VARCHAR、LONG VARCHAR、または CLOB の各フィールドの前後のブランクを保持します。 このオプションを指定しないと、区切り文字で囲まれていないすべての前後のブランクは除去され、 表のすべてのブランク・フィールドに NULL が挿入されます。 |
nochardel | インポート・ユーティリティーは、列区切り文字の間にあるすべてのバイトを列のデータの一部であると見なします。
文字区切り文字は、列データの一部として構文解析されます。
データが DB2 を使用してエクスポートされている場合は、このオプションを指定しないでください (エクスポート時に nochardel が指定されない限り)。
これは、区切り文字を持たないベンダー・データ・ファイルをサポートするために用意されています。
不適切に使用すると、データが損失または破壊される場合があります。
このオプションを chardelx、 delprioritychar または nodoubledel と一緒に指定することはできません。 これらは、相互に排他的なオプションです。 |
nodoubledel | 二重文字区切りの認識を抑止します。 |
修飾子 | 説明 |
---|---|
forcein | コード・ページが不一致でもデータを受け入れ、コード・ページ間の変換を抑止するようにユーティリティーに指示します。
固定長ターゲット・フィールドに、 そのデータが入るだけの十分な大きさがあるかどうかがチェックされます。 nochecklengths が指定されていると、 チェックは実行されず、各行のインポートが試行されます。 |
indexixf | 既存の表に現在定義されている索引をすべてドロップし、 PC/IXF ファイルの索引定義に基づいて新しい索引を作成するようにユーティリティーに指示します。 このオプションを使用できるのは、表の内容を置換する場合だけです。 ビューでは使用できません。 また、insert-column が指定されている場合にも使用できません。 |
indexschema=schema | 指定した schema を、索引作成時の索引名として使用します。 schema を指定しなかった場合 (しかしキーワード indexschema は指定した 場合) には、接続ユーザー ID が使用されます。このキーワードを指定しない場合、IXF ファイルのスキーマが使用されます。 |
nochecklengths | nochecklengths が指定されていると、 ソース・データの列定義がターゲット表の列のサイズを超えるものであっても、 各行のインポートが試行されます。 このような行が正常にインポートされるのは、 コード・ページ変換でソース・データが縮小する場合です。 例えば、 ソースにある 4 バイトの EUC データがターゲットで 2 バイトの DBCS データに縮小すれば、 必要スペースは半分になります。 このオプションが特に役立つのは、列の定義は不一致であるがソース・データが常に適合することが分かっている場合です。 |
forcecreate | インポート操作中に SQL3311N が戻された後、欠落している可能性のある、または限られた情報で表が作成されることを指定します。 |
codepage=N | usegraphiccodepage | IMPORT 動作 |
---|---|---|
なし | なし | ファイル内のすべてのデータは、アプリケーション・コード・ページであると見なされます。 |
あり | なし | ファイル内のすべてのデータは、コード・ページ N であると見なされます。
警告: N が 1 バイト・コード・ページの場合、GRAPHIC データをデータベースにインポートすると、壊れます。 |
なし | あり | ファイル内の文字データは、アプリケーション・コード・ページであると見なされます。
GRAPHIC データは、アプリケーション GRAPHIC データのコード・ページであると見なされます。
アプリケーション・コード・ページが 1 バイトの場合は、すべてのデータはアプリケーション・コード・ページであると見なされます。 警告: アプリケーション・コード・ページが 1 バイトの場合、 GRAPHIC データは、データベースにたとえ GRAPHIC 列が収められていても、 データベースにインポートされると壊れます。 |
あり | あり | 文字データは、コード・ページ N であると見なされます。
GRAPHIC データは、N の GRAPHIC コード・ページであると見なされます。
N が 1 バイトまたは 2 バイト・コード・ページの場合は、 すべてのデータは、コード・ページ N であると見なされます。 警告: N が 1 バイト・コード・ページの場合、GRAPHIC データをデータベースにインポートすると、壊れます。 |
"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)
二重引用符や円記号などの文字の前には、エスケープ文字 (例えば、¥) を付けなければなりません。
... modified by coldel# ...
... modified by coldel0x23 ...
... modified by coldelX23 ...
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