When you create a DataTable column similar to the one in your sample code, dt.Columns.Add() , it defaults to a row .
I had a similar problem, and I found that the problem is that the oversized copy of the oracle cannot handle converting strings to decimal or long if the string is longer than 11 .
To get a workaround, you need to make sure that the original data type is decimal or long, not a string. In your sample code, you can do this with dt.Columns.Add("QTY", typeof(decimal)) ;
More details:
From what I'm collecting, the error message actually tells us that the maximum line length for such a conversion is 11. Those (24) and (22) links in the message are the length of the input lines and the maximum allowed is x 2. My line was 26641778.595, length 12, including the decimal point. If I added a number, the message would change to (26), etc. Again, I also had the same problem with a plain old number as 123456789012, whose length is 12.
source share