使用 SSIS for Visual Studio 2017 进行某些 Excel 文件导入。
我创建了一个包含多个循环容器的包,这些循环容器调用特定的包来处理某些文件。我在执行一个特定包时遇到问题,因为它似乎随机决定每个 Excel 文件的列数据为 NULL。我曾经/现在的印象是这是注册表设置的一部分TypeGuessRows
(最初更改为 0,然后更改为 1000 作为测试)位于
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel
我认为这是因为引入的各个文件通常具有相同的数据,但似乎如果源数据中的前几行列仅包含数字,则混合值的数据将无法正确引入。除此以外的所有其他列似乎都很好。
查看源文件,所有文件都具有相同的数据类型。
我尝试过更改注册表TypeGuessRows
值并确保输出列属性是基于字符串而不是数字。
连接字符串有IMEX=1
所以我修好了它。或者至少找到了一个足够的解决方法,可以帮助处于我这种情况的任何人。我think这与SSIS的缓存有关。
我最终在问题列上放置了一个排序函数,以便首先读取因具有随机数据类型而被读取为 NULL 的记录,而不被视为随机。我会说,我最初尝试过这个,但没有成功。通过在同一个包中创建新数据流的小实验,我发现这个解决方案确实有效,因此我认为缓存是问题所在。
如果有人对此还有任何疑问,请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)