Когда вы создаете столбец DataTable, подобный этому в вашем примере кода, dt.Columns.Add()
, он по умолчанию набирает строку .
У меня была похожая проблема, и я обнаружил, что проблема в том, что массовая копия oracle не может обработать преобразование строк в десятичную или длинную, если длина строки превышает 11 .
Чтобы обойти это, вам нужно убедиться, что исходный тип данных является десятичным или длинным, а не строкой. В вашем примере кода вы можете сделать это с помощью dt.Columns.Add("QTY", typeof(decimal))
;
Подробности:
Из того, что я понял, сообщение об ошибке фактически говорит нам, что максимальная длина строки для такого преобразования равна 11. Эти (24) и (22) ссылки в сообщении являются длинами строки ввода и максимально допустимым x 2. Моя строка была 26641778.595, длина которой 12, включая десятичную точку. Если я добавил цифру, сообщение изменилось на (26) и т. Д. Снова, у меня также была та же проблема с простым старым числом, таким как 123456789012, который имеет длину 12.