データのテキスト入力方法
データのテキスト入力方法について説明します。
データのテキスト入力
ここではデータのテキスト入力方法について説明します。
DB2では「IMPORT」コマンドを使用してテキストファイルからテーブルに入力することができます。
【文法】
IMPORT FROM 入力ファイル名 OF 入力ファイルタイプ 入力モード INTO 入力テーブル
入力ファイル名 … 入力するファイル名です。
入力ファイルタイプ … 区切り付きASCII,区切り無しASCIIなどの形式があります。
入力モード … INSERT/INSERT_UPDATE/REPLACEの3つのモードがあります。
INSERTは追加、REPLACEは既存のレコードをすべて削除したのちに追加。INSERT_UPDATEは主キーで一致行があれば更新なければ追加になります。
本当は、もっとオプションがありますが割愛します。
構文の詳細は公式サイトを参照ください。
【実行例】
以下の例では、CSV形式のファイルを全入れ替え(REPLACE)モードでMST_PRODUCTテーブルに入力します。
IMPORT FROM MST_PRODUCT.CSV OF DEL REPLACE INTO MST_PRODUCT;
実行結果は以下になります。データが登録されています。
SQL> IMPORT FROM MST_PRODUCT.CSV OF DEL REPLACE INTO MST_PRODUCT; 読み取り行数の合計: 3 スキップされた行数の合計: 0 挿入された行数の合計: 3 更新行数の合計: 0 拒否された行数の合計: 0 コミットされた行数の合計: 3 DB250000I: コマンドは正常に完了しました。 SQL> SELECT * FROM MST_PRODUCT; PROD_NO PROD_NAME MAKER PRICE PROD_DESC ------------- ---------------------------------------------------------- ---------------------------------------------------------- ------------- ---------------------------------------------------------- 10001 32型液晶テレビ SONUS 50000 地上波・BSチューナー内蔵LED液晶テレビ 10002 40型液晶テレビ SONUS 100000 地上波・BSチューナー内蔵LED液晶テレビ 2019年モデル 10003 55型液晶テレビ SONUS 130000 地上波・BSチューナー内蔵4KLED液晶テレビ
データに改行が含まれる場合の対処
デフォルトでは、CSVファイルのデータの終わりは改行で判断されます。
このためデータに改行が含まれる場合は、改行コードまででデータの終わりと判断され、データが切れた状態で
登録されてしまします。
ダブルクォート(")で囲まれた改行コードをデータとして判断するには「MODIFIED BY DELPRIORITYCHAR」オプションを
指定します。
【実行例】
今回は先ほど追加したテーブルにさらに1行追加します。(INSERTオプションを指定しています)
IMPORT FROM MST_PRODUCT.CSV OF DEL MODIFIED BY DELPRIORITYCHAR INSERT INTO MST_PRODUCT;
実行結果は以下になります。エラーなくデータ登録ができ、改行を含むデータを入力できました。
SQL> IMPORT FROM MST_PRODUCT.CSV OF DEL MODIFIED BY DELPRIORITYCHAR INSERT INTO MST_PRODUCT; 読み取り行数の合計: 1 スキップされた行数の合計: 0 挿入された行数の合計: 1 更新行数の合計: 0 拒否された行数の合計: 0 コミットされた行数の合計: 1 DB250000I: コマンドは正常に完了しました。 SQL> SELECT PROD_NO, PROD_DESC 1 FROM MST_PRODUCT 2 WHERE PROD_NO = 10004; PROD_NO PROD_DESC ------------- ---------------------------------------------------------- 10004 地上波・BSチューナー内蔵4KLED液晶テレビ 低音スピーカ内蔵