Informix データベースから約 100 万件のレコードを取得し、MSSQL データベースに一括挿入するインポート アプリケーションに取り組んでいます。クエリは単純です: SELECT * FROM <view_name>
. Informix からデータを取得するために、ODBC リーダーを使用しています。コマンドを実行した後、SQLBulkInsert に直接渡します。
問題はここにあります。すべてのデータが取得される場合があります。ただし、リーダーがレコード #181 までしか取得しない場合があり、この問題が発生した場合は常にこのレコードまでです。というわけSELECT SKIP 180 FIRST 2 * FROM <view_name>
で、これらのレコードのデータが壊れていないかなどを確認したのですが、データは大丈夫のようです。また、接続タイムアウトも延長しました (接続が開かれると、これは直接的な影響はありませんが)。これは時々しか発生せず、取得プロセス全体を停止させるのは常に #182 レコードであるため、非常に厄介な問題です。
他の誰かに同様の問題がありましたか? または、これを引き起こしている可能性のあるものについて誰か考えがありますか?
これは、ODBC 経由でデータを取得するために使用しているアウトライン コードです。
OdbcCommand cmd = _conn.CreateCommand();
cmd.CommandText = //sql statement;
OdbcDataReader reader = cmd.ExecuteReader();
return reader;