SQL*Loader(sqlldr)でデータをまとめてインポート
- 2006.07.25
- Oracle
データの移行など、たくさんあるデータをまとめてインポートするときに便利なのが、SQLローダー。
■データをテキストTABで用意
お客様データとして、customer.txtとして準備する。
■テーブルを作成
sqlplusなどで、テーブルを作成しておく。
■ロードする仕組みをシェルスクリプトで用意
入れ物(テーブル)と入れるもの(データ)が準備できたので、どうやっていれるか(制御ファイル)を用意する。
制御ファイルcustomer.ctlの中身
LOAD DATA INFILE 'customer.txt' TRUNCATE INTO TABLE customer FIELDS TERMINATED BY X'09' trailing nullcols ( ID, CUSTOMER_NAME , ZIP_CODE , CUSTOMER_ADDRESS , MODIFY_DATE "to_date(:MODIFY_DATE, 'yyyy.mm.dd')" , MEMO )
■実行
データのロード(インポート)を実行する。
$ sqlldr username control=customer.ctl skip=1
usernameは、実際にはOracleユーザ名を渡す。
1行目はタイトル行なので、スキップする。
制御ファイルとしてcustomer.ctlを使って、ロードを実行する。
sqlldrは、パスを通していない場合は、フルパス指定することを忘れずに。
-
前の記事
Oracleで小文字のテーブル名の扱い 2006.07.25
-
次の記事
Oracleで連番 2006.07.25