SQLローダーとは?

SQLローダー

大量の外部ファイルのデータをデータベースに取り込むときに使うもの f:id:mmmnn1257:20170618180043p:plain

ctlファイル

ctlファイル(制御ファイル)には、csvファイルに書かれたデータをどのようにSQLローダーが読み込むのかを設定する
具体的にはテーブル名とカラム名と型などを書き込む
書き方にはいくつかの注意があり、ハマったのでメモ

  • VARCHAR型はCHAR型と記入
  • NUMBER型はDECIMAL EXTERNAL型と記入
  • 例えば CHAR(1)と指定し、csvファイルでデータを"1"と記入したときはエラーになってしまう
    理由は、ダブルクオーテーションも1文字として換算されているからである
    ダブルクオーテーションを使うときは FIELDS句で囲み文字の設定をする必要がある
    FIELDS [TERMINATED BY (区切り記号)] [OPTIONALLY] [ENCLOSED BY (囲み記号)

csvファイル

カンマで区切られたファイルのこと
ここにテーブルに入れたいレコードのデータを記入していく
shファイルで作られ、ctlファイルで制御される

shファイル

shファイルはコマンドを作るためのファイルでありシェルスクリプトで書かれる
今回は、csvファイルに大量のデータを書き込むように設定する