外部ファイルのデータを、サポートされているファイル形式で表、階層、 または視点に挿入します。 より高速な代替方法は LOADです。 しかしロード・ユーティリティーでは、 階層レベルのデータのロードはサポートされていません。
許可
必須接続
データベース。 暗黙接続が可能な場合には、省略時データベースへの接続が確立されます。
コマンド構文
>>-IMPORT FROM--filename--OF--filetype--------------------------> >-----+-----------------------------+---------------------------> | .-,-----------. | | V | | '-LOBS FROM-----lob-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---+---)-------------------------------------------------------------------' >-----+-----------------+---+------------------+----------------> '-COMMITCOUNT--n--' '-RESTARTCOUNT--n--' >-----+-------------------------+-------------------------------> '-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--' >-----+--------------------------------------------+----------->< '-DATALINK SPECIFICATION--| datalink-spec |--' 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--' >---------------------------------------------------------------| datalink-spec .-,--------------------------------------------------------------------------------------------------. V | |------(--+-----------------+--+----------------------------------+---+--------------------------+---)---+-> '-DL_LINKTYPE URL-' +-DL_URL_REPLACE_PREFIX--"prefix"--+ '-DL_URL_SUFFIX--"suffix"--' '-DL_URL_DEFAULT_PREFIX--"prefix"--' >---------------------------------------------------------------|
コマンド・パラメーター
注: | データが MVS ホスト・データベースからエクスポートされたもので、 ページ・サイズで計算した長さが 254 より少ない LONGVAR フィールドを含んでいる場合、 CREATE は行が長過ぎるために失敗します。 この場合、その表は手動で作成します。 そして、IMPORT に INSERT を指定して呼び出すか、または LOAD コマンドを使用してください。 |
DATALINK 列指定の数は、表で定義されている DATALINK の数と同じだけ定義できます。 指定の順序は、挿入列 リストの中での DATALINK 列の順序、 または表定義内での順序 (挿入列 リストが指定されていない場合) に従います。
接頭部の例
"http://server" "file://server" "file:" "http://server:80" "dfs://.../cellname/fs"
列のデータの中に接頭部がない場合、 DL_URL_DEFAULT_PREFIX で省略時の接頭部が指定されているなら、 列の値の接頭部としてその省略時接頭部が付けられます (NULL でない場合)。
たとえば、 DL_URL_DEFAULT_PREFIX で省略時接頭部が "http://toronto" として指定されている場合、
たとえば、DL_URL_REPLACE_PREFIX で接頭部が "http://toronto" として指定されている場合、
注: | どの表スペースに索引を含めるかは、表を作成するときにのみ指定できます。 |
下位のサーバーの場合を除き、INSERT、INSERT_UPDATE、および REPLACE オプションには、 完全修飾または非修飾の表名を使わなければならないようなときでも、 別名を指定することができます。 修飾子付き表名は、schema.tablename の形式です。 schema には、表作成時のユーザー名が入ります。
注: | このメソッドは、ASC ファイルの場合にのみ使用することができ、 そのファイル・タイプに対してのみ有効なオプションです。 |
注: | この方式は、IXF ファイルの場合にのみ使用することができます。 |
注: | この方式は、IXF または DEL ファイルの場合にのみ使用でき、 DEL ファイル・タイプに対してのみ有効なオプションです。 |
ヌル標識列中の Y の値は、その列データがヌル値であることを指定します。 ヌル標識列に Y 以外 の文字を指定した場合は、 列データがヌル値ではなく、METHOD L オプションで指定された列データがインポートされることを指定することになります。
ヌル標識文字は MODIFIED BY オプションを使用して変更できます (表 6 の nullindchar 修飾子の説明を参照)。
ファイル形式の詳細については、データ移動ユーティリティー 手引きおよび解説書 の付録『Export/Import/Load ユーティリティー・ファイル形式』を参照してください。
表がまだない場合には、行の内容だけでなく表定義と索引定義も作成します。
このオプションは、IXF ファイルの場合にのみ使用することができます。 DATALINK 列を含む表では無効です。 階層間でデータを移動する際にこのオプションを使用する場合は、 階層全体に関係したデータだけが置き換えられます。副表は置き換えられません。
例
例 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
下記に示す例は、 DEL 形式のデータが含まれている入力ファイル delfile1 から、 表 MOVIETABLE をインポートする方法を示す例です。
db2 import from delfile1 of del modified by dldel| insert into movietable (actorname, description, url_making_of, url_movie) datalink specification (dl_url_default_prefix "http://narang"), (dl_url_replace_prefix "http://bomdel" dl_url_suffix ".mpeg")
注:
actorname VARCHAR(n) description VARCHAR(m) url_making_of DATALINK (with LINKTYPE URL) url_movie DATALINK (with LINKTYPE URL)
例 3 (識別列がある表へのインポート)
TABLE1 には以下の 4 つの列があります。
TABLE2 は TABLE1 と同じですが、C2 が GENERATED ALWAYS 識別列である点が異なります。
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
以下のコマンドは、DATAFILE1 で行 1 および 2 への識別値の提供がないので、 それらの行のための識別値を生成します。 ただし、行 3 および 4 は、それぞれユーザー提供の識別値 100 と 101 が割り当てられます。
db2 import from datafile1.del of del replace into table1
DATAFILE1 を 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
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
DATAFILE1 を TABLE2 に、識別関連のファイル・タイプ修飾子を使用せずにインポートした場合、 行 1 と 2 は挿入されますが、行 3 と 4 は拒否されます。 その理由は、それらが固有の非ヌル値を提供し、識別列が GENERATED ALWAYS であるからです。
使用上の注意
インポート操作を開始する前に、すべての表操作が完了し、 すべてのロックが保留解除になっていることを確認してください。 これは、WITH HOLD でオープンされた、 すべてのカーソルをクローズした後で COMMIT または ROLLBACK を発行することによって行われます。
インポート・ユーティリティーは、 SQL INSERT ステートメントを使ってターゲット表に行を追加します。 ユーティリティーは入力ファイル中のデータの行ごとに 1 つの INSERT ステートメントを発行します。 INSERT ステートメントが失敗すると、次のどちらかのアクションが起きます。
ユーティリティーは、REPLACE または REPLACE_CREATE 操作中に、 古い行が削除された後、自動 COMMIT を実行します。 したがって、システムが失敗するか、 またはアプリケーションが表オブジェクトの切り捨て後にデータベース・マネージャーに割り込む場合、 古いデータはすべて失われます。 これらのオプションを使用する前に、古いデータがもう必要ないことを必ず確認してください。
ログが CREATE、REPLACE、または REPLACE_CREATE 操作中にいっぱいになった場合、 ユーティリティーは挿入されたレコード上で自動 COMMIT を実行します。 システムが失敗した場合、またはアプリケーションが自動 COMMIT の後にデータベース・マネージャーに割り込んだ場合、 部分データを持つ表がデータベースに残されます。 REPLACE または REPLACE_CREATE オプションを使用してインポート操作全体をやり直すか、 または正常にインポートされる行の数に設定した RESTARTCOUNT パラメーターを指定して INSERT を使用してください。
省略時では、自動 COMMIT は INSERT または INSERT_UPDATE オプションには実行されません。 しかし、COMMITCOUNT パラメーターがゼロでない場合は実行されます。 フル・ログの結果は ROLLBACK です。
インポート・ユーティリティーが COMMIT を実行するときはいつでも、 2 つのメッセージがメッセージ・ファイルに書き込まれます。 1 つはコミットされるレコードの数を示し、 もう 1 つは正常に終了した COMMIT の後に書き込まれます。 失敗の後にインポート操作を再始動する場合、 最後に正常に終了した COMMIT から決定されたとおり、 スキップするレコードの数を指定してください。
インポート・ユーティリティーは、小さい非互換性問題 (たとえば、 文字データは埋め込みまたは切り捨てを使ってインポートでき、 数値データは異なる数値データ型を使ってインポートできる) は受け入れますが、 大きな非互換性に関する問題は受け入れません。
それ自体以外への依存があるオブジェクト表や、 基本表に何らかの依存 (それ自体も含めて) があるオブジェクト視点を、 REPLACE または REPLACE_CREATE することはできません。 このような表または視点を置換するには、次のようにします。
外部キーの再作成中にエラーが発生する場合、 参照保全を保守するためにデータを変更してください。
参照制約および外部キー定義は、PC/IXF ファイルから表を作成する場合は保存されません。 (基本キー定義は、データが前に SELECT * を使ってエクスポートされた場合、 保存されます。)
リモート・データベースへのインポートには、入力データ・ファイルのコピー、 出力メッセージ・ファイル、およびデータベースがサイズが大きくなる可能性に備えて、 十分なディスク・スペースをサーバー上に確保することが必要です。
インポート操作がリモート・データベースに対して実行され、 出力メッセージ・ファイルが非常に長い (60KB より長い) 場合、 クライアント上でユーザーに戻されるメッセージ・ファイルがインポート操作中に欠落することがあります。 メッセージ情報の最初の 30KB と最後の 30KB は、常に保存されます。
リモート・データベースへの PC/IXF ファイルのインポートは、 PC/IXF ファイルがディスケットではなくハード・ディスク上にある場合、より早く行えます。
ASC、DEL、または WSF のファイル形式をインポートするためには、 それ以前にデータベース表または階層がすでに存在していなければなりません。 しかし、表がまだ存在していない場合でも、 IMPORT CREATE または IMPORT REPLACE_CREATE を使えば、 PC/IXF ファイルからデータをインポートする際に表が作成されます。 タイプ表の場合、IMPORT CREATE によってタイプ階層と表階層も作成されます。
データ (階層データを含む) を別のデータベースに移動するには、 PC/IXF インポートを使う必要があります。 行区切り文字を含む文字データを区切り文字付き ASCII (DEL) ファイルにエクスポートし、 テキスト転送プログラムにより処理を行うと (たとえば、OS/2 と AIX システム間で移動する)、 行区切り文字を含むフィールドは長さが伸縮します。 PC/IXF ファイル形式の指定では、OS/2 (IBM OS/2 拡張サービス、OS/2 拡張版、 および DB2 (OS/2 版)) のデータベースと、DB2 (AIX 版) のデータベースの間で、 エクスポート (OS/2 と AIX の間でファイルをバイナリー・コピー) とインポートによってデータを移行することが可能です。 ソースと宛先のデータベースが両方とも同じクライアントからアクセス可能である場合、 ファイルのコピーというステップは必要ありません。
ここでは、ASC ファイルおよび DEL ファイル内のデータは、 インポートを実行するクライアント・アプリケーションのコード・ページのデータであると想定します。 別々のコード・ページにデータをインポートする場合、 PC/IXF ファイル (異なるコード・ページへのインポートが考慮されたファイル) を使用することが推奨されています。 PC/IXF ファイルとインポート・ユーティリティーが同一のコード・ページの場合、 処理は通常のアプリケーションと同じようになります。 両者が異なるコード・ページであっても、 FORCEIN オプションが指定されている場合には、インポート・ユーティリティーにおいて、 PC/IXF ファイル内のデータが、 インポートを実行するアプリケーションと同一のコード・ページであるとみなされます。 両者のコード・ページに共通の変換表がある場合にも、同じ処置になります。 両者が異なるコード・ページであり、FORCEIN オプションも指定されていないが、 変換表はある、という場合には、 PC/IXF ファイル内のすべてのデータが、 ファイル・コード・ページからアプリケーション・コード・ページへと変換されます。 両者が異なるコード・ページにあり、FORCEIN オプションも指定されておらず、 さらに変換表もない場合には、インポート操作は失敗してしまいます。 これは、DB2 (AIX 版) クライアントの PC/IXF ファイルにのみ適用されます。
列が 1012 個の限界に近づいている 8KB ページ上の表オブジェクトの場合、 PC/IXF データ・ファイルをインポートすると、 SQL ステートメントの最大サイズを超えているため、 DB2 からエラーが戻されることがあります。 このようになるのは、CHAR、VARCHAR、または CLOB 型の列の場合だけです。 DEL または ASC ファイルのインポートでは、この制限は当てはまりません。 PC/IXF ファイルを使って新しい表を作成している場合、 別の方法として、db2look - DB2 統計および DDL 抽出ツール を使ってソース表の DDL をダンプしてから、 ステートメントを CLP から発行する、という方法があります。
DB2 コネクトを使うと、DB2 (OS/390 版)、DB2 (VM および VSE 版)、 および DB2 (OS/400 版) などの DRDA サーバーにデータをインポートできます。 PC/IXF インポート (INSERT オプション) だけがサポートされています。 RESTARTCOUNT パラメーターもサポートされていますが、 COMMITCOUNT パラメーターはサポートされていません。
タイプ表に対して CREATE オプションを使うと、 PC/IXF ファイルの中で定義されているすべての副表が作成されます。 副表定義は更新されません。 タイプ表に対して CREATE 以外のオプションを使うと、 走査順序リストによって、走査順序を指定できます。 その場合、走査順序リストはエクスポート操作で使用されたものと一致していなければなりません。 PC/IXF 形式の場合は、ターゲット副表名を指定して、 ファイルに保管されている走査順序を使うだけです。
インポート・ユーティリティーを使って、 前に PC/IXF ファイルにエクスポートされた表を回復できます。 表は、エクスポート時の状態に戻ります。
データは、システム表、宣言一時表、または要約表にはインポートできません。
インポート・ユーティリティーを介して視点を作成することはできません。
DB2 では、複数パーツの PC/IXF ファイルを、OS/2 システムから AIX システムに各パーツをコピーすることによってインポートする操作がサポートされています。
Windows NT オペレーティング・システムの場合、
DB2 データ・リンク・マネージャーに関する考慮事項
DB2 インポート・ユーティリティーを実行する場合、 その前に下記のことを実行しておいてください。
インポート・ユーティリティーがターゲット・システム上で実行される場合、 DATALINK 列に関連したデータは SQL INSERT を使って、 基礎となる DB2 表にロードされます (他の列の場合と同じ)。
挿入操作の間、DATALINK 列の処理では、 ターゲット・データベースでの列指定に従って、 該当するデータ・リンク・サーバー中のファイルがリンクされます。
入力ファイル内での DATALINK 情報の表示
DATALINK 情報が入力ファイル内でどのように表示されるかについては、
***を参照してください。
修飾子 | 説明 | ||
---|---|---|---|
すべてのファイル形式 | |||
compound=x | x は 1〜100 の数字です。
データの挿入に非アトミック複合 SQL を使用し、
1 回につき x ステートメントずつ挿入が試みられます。
この修飾子が指定され、トランザクション・ログに十分な大きさがない場合、 インポート操作は失敗します。 トランザクション・ログは、COMMITCOUNT によって指定された行数か、 または COMMITCOUNT が指定されていない場合はデータ・ファイルの行数を入れる十分な大きさが必要です。 したがって、トランザクション・ログのオーバーフローを避けるために、 COMMITCOUNT オプションを指定することをお勧めします。
この修飾子は、INSERT_UPDATE モード、階層表、 および修飾子 usedefaults、 identitymissing、 identityignore、 generatedmissing、 generatedignore とは互換性がありません。 | ||
generatedignore | この修飾子は、インポート・ユーティリティーに、 すべての生成列のデータはデータ・ファイルに存在するが、 それらを無視すべきことを知らせます。 この結果として、生成列のすべての値は、このユーティリティーによって生成されます。 この修飾子は、generatedmissing 修飾子と共に使用することはできません。 | ||
generatedmissing | この修飾子を指定すると、ユーティリティーは、入力データ・ファイルには生成列のデータが (NULL さえも) なく、 したがって各行の値が生成されると想定します。 この修飾子は、generatedignore 修飾子と共に使用することはできません。 | ||
identityignore | この修飾子は、インポート・ユーティリティーに、 識別列のデータはデータ・ファイルに存在するが、 それらを無視すべきことを知らせます。 この結果として、すべて識別値はこのユーティリティーによって生成されます。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT 識別列のどちらの場合も同じです。 つまり、GENERATED ALWAYS 列の場合、拒否される行はないという意味です。 この修飾子は、 identitymissing 修飾子と共に使用することはできません。 | ||
identitymissing | この修飾子を指定すると、ユーティリティーは、入力データ・ファイルには識別列のデータが (NULL さえも) なく、 したがって各行の値が生成されると想定します。 この動作は、GENERATED ALWAYS および GENERATED BY DEFAULT 識別列のどちらの場合も同じです。 この修飾子は、 identityignore 修飾子と共に使用することはできません。 | ||
lobsinfile | lob-path には、LOB 値を含むファイルへのパスを指定します。 | ||
no_type_id | 単一副表へのインポートの場合のみ有効。 これを使う場合として典型的な例は、正規の表からデータをエクスポートした後、 この修飾子を使ってインポート操作を呼び出してそのデータを単一の副表に変換する場合です。 | ||
nodefaults | ターゲット表の列に対応するソース列が明示的に指定されていない場合、
その表列がヌル値不可なら、省略時値はロードされません。
このオプションを指定せず、あるターゲット表列のためのソース列が明示的に指定されていない場合、
以下のいずれかになります。
| ||
usedefaults | ターゲット表の列に対応するソース列を指定していても、
1 つまたは複数の行インスタンスにデータが入っていない場合、
省略時値がロードされます。
欠落データの例は次のとおりです。
| ||
ASCII ファイル形式 (ASC/DEL) | |||
dateformat="x" | x は、ソース・ファイルの日付の形式です。a
有効な日付要素は次のとおりです。
YYYY - 年 (0000〜9999 の範囲の 4 桁の数字) M - 月 (1〜12 の範囲の 1 桁または 2 桁の数) MM - 月 (1〜12 の範囲の 2 桁の数; M と同時には使用できない) D - 日 (1〜31 の範囲の 1 桁または 2 桁の数) DD - 日 (1〜31 の範囲の 2 桁の数; 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" | ||
implieddecimal | 暗黙の 10 進小数点の位置は、列定義によって指定されます。 その位置が値の最後にあると想定されることはありません。 たとえば、値 12345 が DECIMAL(8,2) 列にロードされる場合、 123.45 としてであり、 12345.00 ではありません。 | ||
noeofchar | オプションのファイル終了文字 x'1A' は、 ファイル終了として識別されません。 それが普通の文字であるかのようにして処理は継続されます。 | ||
timeformat="x" | x は、ソース・ファイルの時刻の形式です。a
有効な時刻要素は次のとおりです。
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 0 - 12 for a 12 hour system, and 0 - 24 for a 24 hour system; mutually exclusive with H) M - 分 (0〜59 の範囲の 1 桁または 2 桁の数) MM - 分 (0〜59 の範囲の 2 桁の数; M と同時には使用できない) S - 秒 (0〜59 の範囲の 1 桁または 2 桁の数) SS - 秒 (0〜59 の範囲の 2 桁の数; S と同時には使用できない) SSSSS - Second of the day after midnight (5 digits ranging from 00000 - 86399; mutually exclusive with other time elements) TT - 午前午後の標識 (AM または PM)
省略時値の 0 が、指定されない各要素に割り当てられます。 時刻形式のいくつかの例を以下に示します。 "HH:MM:SS" "HH.MM TT" "SSSSS" | ||
timestampformat="x" | x は、ソース・ファイルのタイム・スタンプの形式です。a
有効なタイム・スタンプ要素は次のとおりです。
YYYY - 年 (0000〜9999 の範囲の 4 桁の数字) M - 月 (1〜12 の範囲の 1 桁または 2 桁の数) MM - 月 (1〜12 の範囲の 2 桁の数; M (月) と同時には使用できない) D - 日 (1〜31 の範囲の 1 桁または 2 桁の数) DD - 日 (1〜31 の範囲の 2 桁の数; 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 0 - 12 for a 12 hour system, and 0 - 24 for a 24 hour system; mutually exclusive with H) M - 分 (0〜59 の範囲の 1 桁または 2 桁の数) MM - 分 (0〜59 の範囲の 2 桁の数; M (分) と同時には使用できない) S - 秒 (0〜59 の範囲の 1 桁または 2 桁の数) SS - 秒 (0〜59 の範囲の 2 桁の数; S と同時には使用できない) SSSSS - Second of the day after midnight (5 digits ranging from 00000 - 86399; mutually exclusive with other time elements) UUUUUU - マイクロ秒 (000000 - 999999 の範囲の 6 桁の数) TT - 午前午後の標識 (AM または PM)
YYYY、M、MM、D、DD、または DDD が指定されていない場合、 省略時値として 1 が割り当てられます。 他の要素が指定されていない場合には、 省略時値として 0 が割り当てられます。 以下に、タイム・スタンプ形式の例を示します。 "YYYY/MM/DD HH:MM:SS.UUUUUU"
次の例では、ユーザー定義の日時形式を含むデータを、schedule という表にインポートする方法を示します。 db2 import from delfile2 of del modified by timestampformat="yyyy.mm.dd hh:mm tt" insert into schedule | ||
ASC (区切りなし ASCII) ファイル形式 | |||
nochecklengths | nochecklengths を指定した場合は、 ソース・データの中にターゲット表列のサイズを超える列定義が含まれている場合であっても、 各行のインポートが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にインポートすることができます。 たとえば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 列定義が一致しなくてもソース・データがきちんと収まることが明らかな場合に、 このオプションは特に便利です。 | ||
nullindchar=x | x は単一文字です。
ヌル値を示す文字を x に変更します。
x の省略時値は Y です。b
EBCDIC データ・ファイルの場合、この修飾子は大文字小文字を区別しますが、 英字の場合は区別しません。 たとえば、ヌル標識文字を文字 N に指定した場合、 n もヌル標識として認識されます。 | ||
reclen=x | x は、32 767 以下の整数です。 1 行につき 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 と一緒には指定できません。 それらは相互に排他的なオプションです。
| ||
striptnulls | 可変長フィールドにデータをインポートする場合に、
後書きヌル値 (0x00 文字) をすべて切り捨てます。
このオプションを指定しない場合、ヌル値はそのまま保持されます。
このオプションは、striptblanks と一緒には指定できません。 それらは相互に排他的なオプションです。
| ||
DEL (区切り付き ASCII) ファイル形式 | |||
chardelx | x は単一文字ストリング区切り文字です。
省略時値は二重引用符 (") です。
指定した文字は、文字ストリングを囲むために、二重引用符の代わりに使用されます。
bc
単一引用符 (') も文字ストリング区切り文字として指定できます。 次の例では、chardel'' の指定によって、 すべての単一引用符 (') が文字ストリング区切り文字として解釈されます。 db2 "import from myfile.del of del modified by chardel'' method p (1, 4) insert into staff (id, years)" | ||
coldelx | x は単一文字列区切り文字です。
省略時値はコンマ (,) です。
指定した文字は、列の終わりを表すために、
コンマの代わりに使用されます。bc
次の例では、coldel; の指定によって、 すべてのセミコロン (;) が列区切りとして解釈されます。 db2 import from myfile.del of del modified by coldel; messages msgs.txt insert into staff | ||
datesiso | 日付形式。 すべての日付データ値を ISO 形式でインポートします。 | ||
decplusblank | 正符号文字。 これによって正の 10 進値の先頭に正符号 (+) ではなく、ブランク・スペースが置かれます。 省略時のアクションでは、正の 10 進数の前に正符号 (+) が付けられます。 | ||
decptx | x は、小数点としてピリオドと置換される単一文字です。
省略時値はピリオド (.) です。
指定した文字は、小数点文字としてピリオドの代わりに使用されます。bc
次の例では、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> によって区切られます。 | ||
dldelx | x は単一文字の DATALINK 区切り文字です。
省略時値はセミコロン (;) です。
指定した文字はセミコロンの代わりに、DATALINK 値のフィールド間区切り文字として使用されます。
DATALINK 値には副値が複数個含まれる場合があるため、これが必要になります。bc
| ||
keepblanks | タイプが CHAR、VARCHAR、LONG VARCHAR、または CLOB である各フィールドの前後のブランクを保存します。 このオプションを指定しないと、文字区切り文字で囲まれていないすべての前後のブランクは除去され、 表のすべてのブランク・フィールドにヌルが挿入されます。 | ||
nodoubledel | 二重文字区切り文字の認識を抑止します。 詳細については、区切り文字の制限を参照してください。 | ||
IXF ファイル形式 | |||
forcein | コード・ページが一致していなくてもデータを受け入れ、
コード・ページの変換を抑制するようにユーティリティーに指示します。
固定長ターゲット・フィールドは、 データを入れるだけの十分な大きさがあるかどうかが検査されます。 nochecklengths を指定した場合、 そのような検査は実行されず、各行のインポートが試みられます。 | ||
indexixf | 既存の表に現在定義されている索引をすべて除去し、 PC/IXF ファイルの索引定義に基づいて新しい索引を作成するようにユーティリティーに指示します。 このオプションを使用できるのは、表の内容を置換する場合だけです。 視点では使用できません。 また、insert-column を指定した場合には使用できません。 | ||
indexschema=schema | 指定した schema を、索引作成時の索引名として使用します。 schema を指定しなかった場合 (しかしキーワード indexschema は指定した 場合) には、 接続ユーザー ID が使用されます。 このキーワードを指定しない場合、IXF ファイルのスキーマが使用されます。 | ||
nochecklengths | nochecklengths を指定した場合は、 ソース・データの中にターゲット表列のサイズを超える列定義が含まれている場合であっても、 各行のインポートが試みられます。 コード・ページ変換によってソース・データが縮小されれば、 そのような行であったとしても正常にインポートすることができます。 たとえば、ソースに 4 バイトの EUC データがある場合、 それがターゲットで 2 バイトの DBCS データに縮小されれば、必要なスペースは半分で済みます。 列定義が一致しなくてもソース・データがきちんと収まることが明らかな場合に、 このオプションは特に便利です。 | ||
注:
|
以下も参照