我通过Excel数据源在for-each循环中读取Excel文件。 问题是SSIS正在动态更改连续Excel文件中前几行的depanding列的类型和大小。
我们假设它基于第一行(我知道它默认约为8行)。 在下面的示例中,“code”被读作DT_FLOAT,但是如果第3行是1st,则它将是DT_STR。
ID |代码 1 | 333 2 | 14145 3 | aaaavwv
我的问题是 - 如何定义固定数据结构,每次在循环中加载新的Excel文件时都会使用? 我想用SQL stetement覆盖Excel Source - 比如CAST或CONVERT,但我想这里不允许这样做。
SELECT CAST([id] as int)作为ID,CAST([code] as VARCHAR(30))作为代码 FROM [Sheet1 $];
连接字符串: Provider = Microsoft.ACE.OLEDB.12.0; Data Source = E:\ SHARE \ Data \; Extended Properties =“EXCEL 12.0 XML; HDR = YES; MODE = READ; READONLY = TRUE; IMEX = 1”;
我尝试过但不起作用: - 将IMEX = 1添加到连接字符串 - 在高级编辑器中设置列长度