3

SqlBulkCopyOracle11gソースからMSSQLServer 2012にデータをインポートするために使用しています。しかしNUMERIC、Oracleの列の1つに、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 に答える