データをロードするには
提供:DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#保守作業編】 【DB2逆引きリファレンス目次#データの移動】
目次 |
前提
- データベース接続が必要
- 以下のいずれかが必要: SYSADM権限, DBADM権限
- 表に対するロード権限に加えて、ロード作業で発生する個別の行挿入、行更新を行う権限
解説
データをロードするには、CLPのLOADコマンドを用います。
LOAD [CLIENT] FROM ロード元ファイル名 OF データ形式指定
[MODIFIED BY ロードオプション指定 ] [MESSAGES メッセージ出力先ファイル ] [ ロード方法指定 ] [STATISTICS YES] [ 回復オプション指定 ]
[INDEXING MODE 索引再構築方法指定 ] [ALLOW READ ACCESS]- CLIENT
- リモートクライアントからデータをロードする場合に、ロードするデータがクライアント上にあることを指定します。
- ロード元ファイル名
- ロードするデータを格納しているファイルのパスを指定します。
- データ形式指定
-
ファイルのデータ形式を以下のいずれかで指定します。
- DEL
- カンマ区切りのASCII形式。いわゆるCSV(Comma Separated Values)形式。
- IXF
- 表の型情報なども含むバイナリー形式。
- MODIFIED BY ロードオプション指定
-
ロード処理のオプションを以下のいずれかの形式で指定します。複数のオプションを指定する場合は、空白で区切って並べます。
- fastparse
- DEL形式のファイルの構文チェックを簡略化してロードの実行を高速化します。
- forcein
- データベースと異なるコードページのデータを含むIXF形式を強制的にロードします。
- chardel
- 列を括る文字として単引用符が用いられているDEL形式のデータをロードする際に指定します。
- chardel""
- 列を括る文字として二重引用符が用いられているDEL形式のデータをロードする際に指定します。
- codepage= コードページ指定
- DEL形式でデータをロードする際に、ファイルで用いられてるコードページを指定します。
- MESSAGES メッセージ出力先ファイル
- LOADコマンドの出力メッセージを記録するファイルのパスを指定します。指定しない場合は標準出力にメッセージが出力されます。
- ロード方法指定
-
データのロード方法を以下の形式のいずれかで指定します。
- INSERT INTO 表名
- データを指定した表に追加します。表中に予め存在していたデータは更新されません。
- REPLACE INTO 表名
- 表の既存データをすべて削除した後にデータを表に追加します。
- STATISTICS YES
- 表および索引の統計情報を収集します。ロード方法がREPLACEの時のみ指定できます。
- 回復オプション指定
-
ロールフォワードリカバリーにおけるロード処理の取り扱いを、以下の形式のいずれかで指定します。
- NONRECOVERABLE
- 実行したロード処理をリカバリー不能(REDOできない)トランザクションとしてログに記録します。 過去のある時点のバックアップからロールフォワードでリカバリーを実行する場合、このロード処理を行う直前の時刻までのリカバリーが可能です。
- COPY YES [TO コピー先指定 ]
- ロールフォワードリカバリーにてロード処理をREDOできるように、ロードに用いたデータをコピーして保存します。 コピー先のディレクトリのパスを指定することができます。複数指定する場合は、カンマで区切って並べます。
- INDEXING MODE 索引再構築方法指定
-
索引の再構築方法を以下の形式のいずれかで指定します。
- REBUILD
- すべての索引を再作成します。
- INCREMENTAL
- ロードするデータに基づいて既存の索引を更新します。
- AUTOSELECT
- REBUILDもしくはINCREMENTALのいずれを利用するのかを自動的に決定します。
- ALLOW READ ACCESS
- ロード処理実行中の表に対する読み取りを許可します。ロード方法がREPLACEの場合は指定できません。
使用例
DEL形式のファイル(ここではemployee.del)を表(ここではemployee)に追加する例。
db2 ==> LOAD FROM employee.del OF DEL INSERT INTO employee↓
クライアント上にあるIXF形式のファイル(ここではemployee.ixf)を表(ここではemployee)に追加する例。
db2 ==> LOAD CLIENT FROM employee.ixf OF IXF INSERT INTO employee↓
注意
- アーカイブロギングモードでロードを実行した場合、ロード完了後にデータベースがバックアップ保留状態になります。 回復オプションを指定するかバックアップを実行してください。
- ロード先の表に制約がある場合は、ロード完了後はチェックペンディング状態になります。 制約を有効にしてください。