Just to add on the default value part, in my experience, SQL*Loader does not automatically put in default values into fields. You will need to use the DEFAULTIF parameter or use decode like:

field1 "decode(:field1,'','default string',:field1)",

This would work just like DECODE function. However this will not work with direct=y