Fejlmeddelelsen skyldes, at de data, der læses ind fra datafilen, er større end sqlldrs standardtegnbuffer på 255, som bruges, hvis der ikke er angivet nogen CHAR og størrelse. Bemærk, at dette er anderledes end størrelsen på den kolonne, som feltet svarer til. For eksempel, hvis jeg har en tabelkolonne med VARCHAR2(4000), men ikke eksplicit angiver en størrelse i kontrolfilen
cola not null,
og dataene i datafilen overstiger 255, men er mindre end 4000 i længden, får du fejlen.
Men hvis kontrolfilen angiver bufferstørrelsen sådan her:
cola char(4000) not null,
alt vil være godt, som om det skaber en større buffer (her matcher det kolonnestørrelsen). Så væn dig bare til altid at inkludere kolonnestørrelserne. Spar dig selv for noget besvær og opret en funktion til at generere en standardkontrolfil til dig...vent jeg postede min for dig, prøv det:https://stackoverflow.com/a/37947714/2543416