Я использую SqlBulkCopy
для импорта данных из источника Oracle 11g в MS SQL Server 2012. Но один из столбцов NUMERIC
в Oracle содержит такие значения, как 53682,0 (~ 35 раз) 1, 263,9 (~ 32 раза). Целевой столбец на сервере Sql в настоящее время имеет тип данных 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.
CAST
присвоил поле целевому типу данных в запросе. - person JNK   schedule 20.02.2013