从Excel文件读取时,SSIS错误地将字符串数据设置为浮点数

时间:2012-02-08 16:06:42

标签: sql-server ssis

我有一个以前有效的SSIS项目。它从Excel文件中读取客户ID并将其复制到SQL Server目标。从Excel文件获取输入时,客户ID字段最初设置为浮点。现在有一个客户ID,以“Z”开头,然后是数字。

每当我将客户ID的Excel源输出中的外部列更改为Unicode字符串[DW_STR]并保存时,我会收到错误通知。当我回到它时,它会问:

The component is not in a valid state. The validation errors are:
Error at Read madden file to work db [Excel Source [194]]: The output column "GM_CUSTOMER_ID" (3333) on the error output has properties that do not match the properties of its corresponding data source column.


Do you want the component to fix these errors automatically?

当我选择是时,它只是将客户ID更改回浮点。如何更改客户ID的数据类型并更正此错误?

更新:进行进一步研究后,当从Excel文件中读取列时混合数据时,Jet Engine会自动告诉SSIS数据类型是最常用的数据类型。因此,如果我导入的数据主要是浮点数,它会将SSIS中列的数据类型设置为浮点数,并将所有其他值设置为NULL!我正在努力寻找解决方法。

1 个答案:

答案 0 :(得分:1)

这是一个类似的问题:

Help with a OleDB connection string for excel files

但是,对我来说唯一有用的是在注册表中将TypeGuessRows值设置为高数字:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel