Remove the "var" and the column lengths:

Code:
-- Your control file
load data
infile 'C:\ex.dat' 
truncate into table exam
fields terminated by ',' optionally enclosed by '"'
(col1 char,col2 char)

And you get this:

Code:
H:\app\prj\sql>sqlldr scott/tiger control=ex.ctl

SQL*Loader: Release 10.2.0.1.0 - Production on Wed Nov 11 09:18:47 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Commit point reached - logical record count 3

H:\app\prj\sql>type ex.log

SQL*Loader: Release 10.2.0.1.0 - Production on Wed Nov 11 09:18:47 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Control File:   ex.ctl
Data File:      c:\ex.dat
  Bad File:     ex.bad
  Discard File:  none specified

 (Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array:     64 rows, maximum of 256000 bytes
Continuation:    none specified
Path used:      Conventional

Table EXAM, loaded from every logical record.
Insert option in effect for this table: TRUNCATE

   Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
COL1                                FIRST     *   ,  O(") CHARACTER
COL2                                 NEXT     *   ,  O(") CHARACTER


Table EXAM:
  3 Rows successfully loaded.
  0 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.


Space allocated for bind array:                  33024 bytes(64 rows)
Read   buffer bytes: 1048576

Total logical records skipped:          0
Total logical records read:             3
Total logical records rejected:         0
Total logical records discarded:        0

Run began on Wed Nov 11 09:18:47 2009
Run ended on Wed Nov 11 09:18:47 2009

Elapsed time was:     00:00:00.37
CPU time was:         00:00:00.11

H:\app\prj\sql>