ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

SQL*Loader で改行の無い固定長ファイルをロードする

取り込もうと思ったファイルに改行が無くてビックリしたときの話。
基本的な使い方は以下を参考にしました。ちなみに9i環境です。
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/ldr_control_file.html
http://www.shift-the-oracle.com/utility/sqlloader/
http://www.ne.jp/asahi/hishidama/home/tech/oracle/sqlldr.html


で、いざ取り込むぞって時に「20000バイト以上のデータを読めません」的なエラーが発生。
レコード・デリミタを指定すればよいだけだべーと思って何処で設定できるか探し始めたらすぐ見つけられなくて焦った。
行末を示すのは INFILE のうしろですた。

INFILE '<ファイル名>' "<行末を示すモノ>"

指定が無ければ改行コードをデリミタとして判断する様子。
たとえば1000バイトごとにレコード分けされるようなファイルを読み込む場合は

INFILE 'HOGEHOGE.DAT' "FIX 1000"

ちなみにダブルクォートをシングルクォートにするとエラーになりました。
いろいろあるんだなぁ…