Я использую SqlBulkCopy
для импорта данных из источника Oracle 11g в MS SQL Server 2012. Но один из столбцов NUMERIC
в Oracle содержит значения, такие как 53682.0 (~ 35 раз) 1, 263,9 (~ 32 раза). Целевой столбец на сервере Sql в настоящее время является FLOAT
данных FLOAT
и в настоящее время я получаю следующее исключение:
Арифметическая операция привела к переполнению.
Это мой пример кода:
using (SqlConnection conn = new SqlConnection(destConnString))
{
conn.Open();
try
{
using (OracleConnection connection = new OracleConnection(srcConnString))
{
using (OracleCommand command = new OracleCommand(selectQuery, connection))
{
connection.Open();
using (OracleDataReader reader = command.ExecuteReader(CommandBehavior.Default))
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, trans))
{
bulkCopy.DestinationTableName = tableName;
bulkCopy.BulkCopyTimeout = 0;
bulkCopy.WriteToServer(reader);
}
}
}
}
trans.Commit();
}
....
Я пытаюсь округлить эти данные, но без успеха, также я ничего не могу изменить в таблице Oracle.
Не можете ли вы просто изменить свой запрос Oracle SELECT, например, чтобы усечь оскорбительное числовое значение?