OracleのSQL*LOADERについて
コマンドライン
|
|
keywardには
- data データファイル名|拡張子がない場合は.datと判断される
- LOAD ロードするレコード数
制御ファイル
INFILE
データファイルの指定 ファイル名に拡張子を指定しない場合.datと判断される
- INFILE %%*%% 制御ファイルにデータをBEGINDATA構文で記述する場合
INTO TABLE
ロードする表の指定 INSERT、APPEND、REPLACE、TRUNCATEが指定できる
- INSERT デフォルトの動作。表を空にする必要がある
- APPEND 表にデータを追加
- REPLACE 表を削除してロード
- TRUNCATE 表を削除してロード。パフォーマンスが高いが参照整合制約を切っておく必要がある。
|
|
CONTINUEIF LAST
レコードの終わりを指定できる。 1レコードが複数行のCSVファイルをロードする時等便利。 通常、改行毎に1レコードとして扱われるが、 以下の指定をすると、改行が現れても終端がダブルクォートでないうちは、1レコードとして扱ってくれる。
|
|
OPTION
実行時のパラメータをコマンドではなく制御ファイルに書ける
フィールドの指定
TRAILING NULLCOLS
相対位置に指定したカラムがデータ中に存在しない場合は、NULLがロードされる
TERMINATED
データの区切りを指定
- TERMINATED BY ‘,’ OPTIONARY ENCLOSED by ‘"’ カンマ区切りで項目を"で囲む
FILLER
データファイルのうち、データベースにロードされない項目を指定
|
|
CONSTANT
定数を列にロードする
|
|
SYSDATE
列にSYSDATEをロードする
|
|
文字データの文字数制限
CSVファイルをロードするときに、文字データが255バイトを超えるとエラーが発生してロードされない。 以下のように255バイトを超える項目にはchar(n)で最大文字列長を指定する。
|
|