データベースから、いくつかある外部ファイル形式のどれかにデータをエクスポートします。 ユーザーは、SQL SELECT ステートメントを提供するか、 タイプ表の階層情報を提供して、エクスポートするデータを指定します。
許可
以下のどれかが必要です。
または、関係する各表または視点に対する CONTROL または SELECT 特権
必須接続
データベース。 暗黙接続が可能な場合には、省略時データベースへの接続が確立されます。
コマンド構文
>>-EXPORT TO--filename--OF--filetype----------------------------> >-----+---------------------------+-----------------------------> | .-,-----------. | | V | | '-LOBS TO-----lob-path---+--' >-----+---------------------------+-----------------------------> | .-,-----------. | | V | | '-LOBFILE-----filename---+--' >-----+-----------------------------------+---------------------> | .-----------------. | | V | | '-MODIFIED BY-----filetype-mod---+--' >-----+--------------------------------------+------------------> | .-,--------------. | | V | | '-METHOD N--(-----column-name---+---)--' >-----+-------------------------+-------------------------------> '-MESSAGES--message-file--' >-----+-select-statement---------------------------------------------+> '-HIERARCHY--+-STARTING--sub-table-name--+---+---------------+-' '-| traversal-order-list |--' '-where-clause--' >-------------------------------------------------------------->< traversal-order-list .-,-----------------. V | |---(-----sub-table-name---+---)--------------------------------|
コマンド・パラメーター
エクスポート操作中に LOB ファイルを作成すると、まずこのリストから現行パス
(lob-path で指定されたパス) に現行の基本ファイル名を追加し、
それに 3 桁の順序番号を追加したファイル名が構成されます。
現行 LOB パスがディレクトリー /u/foo/lob/path で、
現行 LOB ファイル名が bar の場合、LOB ファイルは、
/u/foo/lob/path/bar.001、
/u/foo/lob/path/bar.002
(以下 003、004 と続く) といった名前と順序で作成されます。
注: | BIGINT または DECIMAL データをエクスポートする場合、 タイプ DOUBLE の範囲内の値のみが正確にエクスポートされます。 この範囲内にない値もエクスポートされますが、オペレーティング・システムによっては、 これらの値のインポートまたはエクスポートの結果、データに間違いが生じる場合があります。 |
ファイル形式の詳細については、データ移動ユーティリティー 手引きおよび解説書 の付録『Export/Import/Load ユーティリティー・ファイル形式』を参照してください。
すでに存在するファイルの名前を指定した場合、 エクスポート・ユーティリティーはファイルの内容を上書きします。 情報の追加は行いません。
例
次に示すのは、SAMPLE データベース (このデータベースにユーザーは接続している必要がある) にある STAFF 表から、 myfile.ixf に IXF 形式の出力で情報をエクスポートする方法の一例です。 データベース接続が DB2 コネクトを介していない場合、 索引定義 (もしあれば) は出力ファイルに保管されます。 そうでない場合、データのみが保管されます。
db2 export to myfile.ixf of ixf messages msgs.txt select * from staff
次に示すのは、SAMPLE データベースの STAFF 表 (ユーザーが接続している必要がある) から部門 20 の従業員に関する情報を、 awards.ixf に IXF 形式の出力でエクスポートする方法の一例です。
db2 export to awards.ixf of ixf messages msgs.txt select * from staff where dept = 20
次に示すのは、LOB を DEL ファイルにエクスポートする方法の一例です。
db2 export to myfile.del of del lobs to mylobs lobfile lobs1, lobs2 modified by lobsinfile select * from emp_photo
次の例は、LOB を DEL ファイルにエクスポートし、 最初のディレクトリーに適合しないファイルに 2 番目のディレクトリーを指定する方法を示します。
db2 export to myfile.del of del lobs to /db2exp1, /db2exp2 modified by lobsinfile select * from emp_photo
次の例は、単一引用符をストリング区切り文字、 セミコロンを列区切り文字、コンマを小数点として使用して、 データを DEL ファイルにエクスポートする方法を示します。 データをデータベースにインポートし直す場合にも同じ規則を使用するべきです。
db2 export to myfile.del of del modified by chardel'' coldel; decpt, select * from staff
使用上の注意
エクスポート操作を開始する前に、すべての表操作が完了し、 すべてのロックが保留解除になっていることを確認してください。 これは、WITH HOLD でオープンされた、 すべてのカーソルをクローズした後で COMMIT または ROLLBACK を発行することによって行われます。
SELECT ステートメントでは表の別名を使用できます。
メッセージ・ファイルに置かれるメッセージには、 メッセージ検索サービスから戻される情報が含まれています。 各メッセージは改行してから始まります。
DEL 形式ファイルへエクスポートするために 254 よりも長い文字データの列が選択されると、 エクスポート・ユーティリティーは警告メッセージを生成します。
PC/IXF インポートはデータベース間でデータを移動する場合に使用します。 行区切り文字を含む文字データを区切り文字付き ASCII (DEL) ファイルにエクスポートし、 テキスト転送プログラムにより処理を行うと (たとえば、OS/2 と AIX システム間で移動する)、 行区切り文字を含むフィールドは長さが伸縮します。
PC/IXF ファイル形式の指定では、OS/2 (IBM OS/2 拡張サービス、OS/2 拡張エディション、 および DB2 (OS/2 版)) のデータベースと、DB2 (AIX 版) のデータベースの間で、 エクスポート (OS/2 と AIX の間でファイルをバイナリー・コピー) とインポートによってデータを移行することが可能です。 ソースと宛先のデータベースが両方とも同じクライアントからアクセス可能である場合、 ファイルのコピーというステップは必要ありません。
DB2 コネクトは、DB2 (OS/390 版)、DB2 (VM および VSE 版)、 および DB2 (OS/400 版) などの DRDA サーバーから表をエクスポートするために使用できます。 PC/IXF エクスポートだけがサポートされています。
エクスポート・ユーティリティーは、AIX システムから呼び出される場合、 複数部分からなる PC/IXF ファイルを作成しません。
エクスポート・ユーティリティーは、提供される SELECT ステートメントが、 SELECT * FROM tablename という形式である場合、 IXF ファイルの表の NOT NULL WITH DEFAULT 属性を保管します。
タイプ表をエクスポートする場合、副選択ステートメントは、 ターゲット表名と WHERE 文節を指定することによってのみ表現することができます。 階層をエクスポートするとき、全選択と選択ステートメント は指定できません。
IXF 以外のファイル形式の場合は、走査順序リストを指定するようお勧めします。 このリストは、階層を走査する方法やエクスポートする副表を DB2 に指示します。 このリストを指定しない場合、階層内のすべての表がエクスポートされ、 省略時の順序は OUTER 順序になります。 または、OUTER 関数によって指定される順序である、省略時の順序を使用することができます。
注: | インポート操作の間も同じ走査順序を使用します。 ロード・ユーティリティーは、階層や副階層のロードをサポートしていません。 |
DB2 データ・リンク・マネージャーに関する考慮事項
表と、DATALINK 列が参照する対応ファイルの整合性の取れたコピーがエクスポートでコピーされるよう保証するには、 以下のようにします。
これにより、EXPORT の実行時に進行中の更新トランザクションがないことが保証されます。
これにより、表は更新に使用できるようになります。
EXPORT は SQL アプリケーションとして実行されます。 SELECT ステートメントを満たす行と列がデータベースから抽出されます。 DATALINK 列の場合、SELECT ステートメントはスカラー関数を指定できません。
EXPORT が正常に実行されると、以下のファイルが生成されます。
ファイルをデータ・リンク・サーバーからエクスポートするため、
dlfm_export ユーティリティーが提供されています。
このユーティリティーは、宛先データ・リンク・サーバーにファイルを復元するのに使用できる、
アーカイブ・ファイルを生成します。
修飾子 | 説明 | ||
---|---|---|---|
すべてのファイル形式 | |||
lobsinfile | lob-path には、LOB 値を含むファイルへのパスを指定します。 | ||
DEL (区切り付き ASCII) ファイル形式 | |||
chardelx | x は単一文字ストリング区切り文字です。
省略時値は二重引用符 (") です。
指定した文字は二重引用符の代わりに、
文字ストリングを囲むために使用されます。a
単一引用符 (') も次のように文字ストリング区切り文字として指定できます。 modified by chardel'' | ||
coldelx | x は単一文字列区切り文字です。
省略時値はコンマ (,) です。
指定した文字はコンマの代わりに、列の終わりを表すために使用されます。a
次の例では、coldel; によってエクスポート・ユーティリティーは、 すべてのセミコロン (;) を列区切り文字として解釈します。 db2 "export to temp of del modified by coldel; select * from staff where dept = 20" | ||
datesiso | 日付形式。 これによって、すべての日付データ値は ISO 形式 ("YYYY-MM-DD") でエクスポートされます。b | ||
decplusblank | 正符号文字。 これによって正の 10 進値の先頭に正符号 (+) ではなく、ブランク・スペースが置かれます。 省略時のアクションでは、正の 10 進数の前に正符号 (+) が付けられます。 | ||
decptx | x は、小数点としてピリオドと置換される単一文字です。 省略時値はピリオド (.) です。 指定した文字はピリオドの代わりに、 小数点文字として使用されます。a | ||
dldelx | x は単一文字の DATALINK 区切り文字です。
省略時値はセミコロン (;) です。
指定した文字はセミコロンの代わりに、DATALINK 値のフィールド間区切り文字として使用されます。
DATALINK 値には副値が複数個含まれる場合があるため、これが必要になります。
a
| ||
nodoubledel | 二重文字区切り文字の認識を抑止します。 詳細については、区切り文字の制限を参照してください。 | ||
WSF ファイル形式 | |||
1 | ロータス 1-2-3 リリース 1、または ロータス 1-2-3 リリース 1a と互換性のある WSF ファイルを作成します。c これが省略時値です。 | ||
2 | Lotus Symphony リリース 1.0 と互換性のある WSF ファイルを作成します。 c | ||
3 | ロータス 1-2-3 バージョン 2、または Lotus Symphony リリース 1.1 と互換性のある WSF ファイルを作成します。c | ||
4 | DBCS 文字を含む WSF ファイルを作成します。 | ||
注:
|
選択した区切り文字が移動されるデータの一部になっていないことを確認するのは、 ユーザーの責任において行ってください。 区切り文字がデータの一部になっている場合、予期しないエラーが発生する場合があります。 データを移動する際は、以下の制限が列、ストリング、DATALINK、 および小数点区切り文字に適用されます。
" (0x22、二重引用符; ストリング区切り文字) , (0x2c、コンマ; 列区切り文字)
" (0x7F、二重引用符; ストリング区切り文字) , (0x6B、コンマ; 列区切り文字)
db2 load from ... modified by chardel0x0C coldelX1e ...
DEL ファイルでの二重文字区切り文字の認識サポートに関する以下の情報は、 エクスポート、インポート、およびロード・ユーティリティーに適用されます。
"What a ""nice"" day!"
これは、次のようにインポートされます。
What a "nice" day!
エクスポートの場合は、逆の規則が適用されます。 たとえば、次のように指定します。
I am 6" tall.
これは、次のように DEL ファイルにエクスポートされます。
"I am 6"" tall."
以下も参照