sqlldr load UTF8 error
The default length semantics for all datafiles (except UFT-16) is byte. So in your case you have a CHAR of 3500 bytes rather than characters. You have some multi-byte characters in your file and the 2624 characters is therefore using more than 3500 bytes, hence the (misleading) message.
You can sort this out by using character length semantics instead
alter this line in your control file
characterset UTF8
to this
characterset UTF8 length semantics char
and it will work on characters for CHAR fields (and some others) - in the same way that you have set up your table, so 3500 characters of up to four bytes each.