エラーメッセージは、データファイルから読み込まれたデータが、CHARとサイズが指定されていない場合に使用されるsqlldrのデフォルトの文字バッファ255よりも大きいためです。これは、フィールドが対応する列のサイズとは異なることに注意してください。たとえば、VARCHAR2(4000)のテーブル列があるが、制御ファイルにサイズを明示的に指定していない場合
cola not null,
データファイル内のデータが255を超え、長さが4000未満の場合、エラーが発生します。
ただし、制御ファイルに次のようなバッファサイズが記載されている場合:
cola char(4000) not null,
すべてが、より大きなバッファーを作成するかのように機能します(ここでは列サイズと一致します)。したがって、常に列サイズを含める習慣を身に付けてください。手間を省いて、デフォルトの制御ファイルを生成する関数を作成してください...私があなたのために投稿したのを待って、試してみてください: https://stackoverflow.com/a/37947714/2543416