Komunikat o błędzie jest spowodowany tym, że dane wczytane z pliku danych są większe niż domyślny bufor znaków sqlldr wynoszący 255, który jest używany, jeśli nie określono CHAR i rozmiaru. Zauważ, że różni się on od rozmiaru kolumny, której odpowiada pole. Na przykład, jeśli mam kolumnę tabeli VARCHAR2(4000), ale nie podawaj jawnie rozmiaru w pliku kontrolnym
cola not null,
a dane w pliku danych przekraczają 255, ale mają mniej niż 4000 długości, otrzymasz błąd.
Jeśli jednak plik kontrolny określa rozmiar bufora w następujący sposób:
cola char(4000) not null,
wszystko będzie dobrze, jakby tworzyło większy bufor (tutaj pasuje do rozmiaru kolumny). Tak więc, po prostu przyzwyczajaj się, aby zawsze uwzględniać rozmiary kolumn. Oszczędź sobie trochę kłopotów i stwórz funkcję, która wygeneruje dla Ciebie domyślny plik kontrolny... czekaj, wysłałem dla Ciebie mój, spróbuj:https://stackoverflow.com/a/37947714/2543416