我从excel电子表格导入,它不允许我将源列类型从Double更改为Unicode字符串。
我尝试过使用“IMEX = 1;”在连接字符串中,但这似乎一无所获。
包拒绝验证,当我执行包时因此不会运行,并且当我肯定想要“Unicode”时,它仍然希望将外部列的“输入”休息为“浮动”,即使我'将“验证”设置为false。
我一定错过了什么?!!?
答案 0 :(得分:0)
这个问题没有简单的答案。
基本上这是SSIS的一个已知问题。它会自动记录一定数量的记录并确定这是数据类型,并且您无法更改它(它将继续为您提供元数据错误,并且不会进行验证,并将其重置为它认为已确定的内容)。您可以设置注册表中的记录数,但这并不能解决根本问题,因为有时您导入的文件可能包含也可能不包含字符串。
我通过在列中的所有条目前面放置单引号(')字符来解决这个问题,我希望将其作为字符串进行检测。这意味着只要SSIS验证它就会认为它是unicode,这就是我想要的。
设置“IMEX = 1”仅在SSIS实际检测到字母数字记录时有用。
Cdonner: 源数据类型很重要,因为它实际上将列设置为数字时,列也可能包含字符串。所以当它遇到一个字符串时可能会爆炸,可能是1000行。
山姆: Excel 2003.我相信这仍然是SQL Server 2008 SSIS中的一个问题。