SSIS:Excel源检测类型

时间:2019-01-29 18:28:04

标签: sql sql-server excel ssis

我目前正在工作

  • 在sql server 2012中,
  • 和OLEDB JET提供程序12.0。
  • excel 13。

我必须导入许多excel文件...但是这个血腥的提供程序无法以一种非常奇怪的方式来检测rigth类型,这意味着==>

我知道rowtypeguess会扫描前八行以确定类型(但是我无法更改寄存器来更改所有服务器中的该属性)。

最大的问题是ssis将某些float列检测为dt-wstr,因为它们的第一个eigth为null,但对于其他浮点列,他检测到了正确的类型:float!

我不明白为什么会有不变的行为!!!

我什至试图将excel列强制为数字,但SSIS仍希望它们为DT_WSTR。

所以我被迫做一个tmp表,然后像这样转换所有需要浮动的列:

case 
            when isnull([cola],'') <> ''  
            then cast(replace([cola],',','.') as float) 
end  

问题是我有无数列,因此必须频繁进行此集成操作:因此,这意味着,如果下次这些列突然被识别为浮点数,而其他列不再被识别为浮点数 我必须在每次集成时都改变每件事。

从长远来看,我该如何管理?你有什么解释吗?

1 个答案:

答案 0 :(得分:0)

好的,就像我在问题中说的那样, 我什至尝试将excel列强制为类似image to show how i do it

的数字

今天重新启动我的计算机,我注意到他正在检测到它们为浮子! hallelouiahhhhhhhh

在下午,他们回到了wstr ...恶劣的生活,我明白了,我将不得不将一切都强加给wstr,然后nnnn将它们一一转换...用于无数的col ....

我想知道ssis有什么意义...?根本不实用!!!