Steffen - I am also dealing with this problem now. One thing that works is to use cast(<number> as int) when the number is an integer.
Dealing with decimals is giving a bit of a problem. the Oracle round() and trunc() functions don't seem to work when that code is passed through via OLEDB.
So if you just have integers, simply cast those as integers in the script and you'll be fine.