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。