テキストになっているはずのExcelの列がありますが、SSISはそこに数値テキストを認識し、自動的に倍精度浮動小数点数にします[DT_R8]。
出力ブランチの[外部]列と[出力]列で手動で変更できますが、エラー出力では、対応する列を変更できません。
Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)".
Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)".
パッケージのxmlを変更してみました。私が試したIMEX=1
し、typeguessrow=0
それのどれも私の問題を修正していません。これには修正がありますか?データ型を推測する前に、Excelがデフォルトの8行以上を読み取るようにレジストリを変更することを提案する記事もあります。この方法を使用したくない場合でも、パッケージを実行する予定のマシンでレジストリを変更する必要があるためです。
SQLのnvarcharフィールドにインポートされるExcelフィールドは、たとえば次のようになります。
295.3
296.33
しかし、それらはSQLテーブルに次のように書き込まれます。
295.30000000000001
296.32999999999998
私はデータビューアーを入れ、フィールドが表示されます
295.3
296.33
実行中ずっと正しいですが、OLE DB Destinationソースに到達すると、どういうわけかそれを
295.30000000000001
296.32999999999998
それは間違っています。
また、たとえばV321.1やV213.34などの値もあり、これらは完全に整数ではなく、varcharとして格納する必要があります。