Using output value of column from function for another column in SQL*Loader
In don't think you can use the resullt of a function. The documentation for the loader can be found in the Utilities Manual.
Applying SQL Operators to Fields says 


  The execution of SQL strings is not considered to be part of field setting. Rather, when the SQL string is executed it uses the result of any field setting (...)


Field setting means that the field names are assigned to the substrings of the current data of the record of the  file that is loaded. How this works is described in Specifying the Position of a Data Field: If you have a POSITION(x:y) specification for a column named colthen the substring from position  x to position y is the field value of col and it can be references as :col in an sql-string. If there is no POSITION specifiaction found as in the specification of your fields col2, col4,  col5, col7, col12, col13, LAST_UPDATE_T and LAST_UPDATE_USER_I, then  POSITION is defined some way depending on the previous field and the data type of the column. So because the col2-Field (that is referenced by :col2 in an sql-string) has no explicit field specification it is the  field of INTEGER EXTERNAL  type  (of default lenght 1) following col1. So it actually is POSITION(9:9) and therefore the first character of:col6 

If you want to set the column values of a table depending on other column values you can use a trigger on the table.