痛い目に合う典型だったな。えらい時間ロスだ。
(ナンデヤネーン、オキャクサンソレジャサンプルニナッテマセンガナ orz )
UTL_FILEパッケージでバイナリを出すには
10g以降の新機能であり、バイナリ指定が必要
× openmode char(1) := 'w';
○ openmode char(2) := 'wb';
また、オフセットが1から始まっているループは
1バイト足りないので、注意して読むといい。
文字型の場合、自動的に改行が付与されるので、
最後の1文字を忘れても結果同じになる、というのが真相っぽい。
OTNの掲示板でそれっぽい議論があった。
http://otn.oracle.co.jp/forum/thread.jspa?threadID=8009792&start=0&tstart=0
私と同じくドツボにはまった方はご参考あれ。