我正在使用SqlBulkCopy
将数据从Oracle 11g源导入MS SQL Server 2012.但Oracle中的NUMERIC
列之一包含的值为53682.0(~35次)1,263.9(~32次) )。 Sql Server中的目标列当前是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表中的任何内容。
答案 0 :(得分:2)
您不能只修改Oracle SELECT查询,例如截断有问题的数值?