3

SqlBulkCopy用于将数据从 Oracle 11g 源导入 MS SQL Server 2012。但NUMERICOracle 中的一列包含 53682.0(~35times)1、263.9(~32times) 等值。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 表中的任何内容。

4

1 回答 1

2

您不能只修改您的 Oracle SELECT 查询,例如截断有问题的数值吗?

于 2013-02-20T13:08:01.500 回答