SSIS正在强制我不想要的Excel数据类型。更改连接字符串不起作用

时间:2009-09-17 04:05:26

标签: ssis

我从excel电子表格导入,它不允许我将源列类型从Double更改为Unicode字符串。

我尝试过使用“IMEX = 1;”在连接字符串中,但这似乎一无所获。

包拒绝验证,当我执行包时因此不会运行,并且当我肯定想要“Unicode”时,它仍然希望将外部列的“输入”休息为“浮动”,即使我'将“验证”设置为false。

我一定错过了什么?!!?

1 个答案:

答案 0 :(得分:0)

这个问题没有简单的答案。

基本上这是SSIS的一个已知问题。它会自动记录一定数量的记录并确定这是数据类型,并且您无法更改它(它将继续为您提供元数据错误,并且不会进行验证,并将其重置为它认为已确定的内容)。您可以设置注册表中的记录数,但这并不能解决根本问题,因为有时您导入的文件可能包含也可能不包含字符串。

我通过在列中的所有条目前面放置单引号(')字符来解决这个问题,我希望将其作为字符串进行检测。这意味着只要SSIS验证它就会认为它是unicode,这就是我想要的。

设置“IMEX = 1”仅在SSIS实际检测到字母数字记录时有用。

Cdonner: 源数据类型很重要,因为它实际上将列设置为数字时,列也可能包含字符串。所以当它遇到一个字符串时可能会爆炸,可能是1000行。

山姆: Excel 2003.我相信这仍然是SQL Server 2008 SSIS中的一个问题。