SSIS中的多文件连接管理器

时间:2012-06-18 07:38:32

标签: ssis

我正在制作一个场景,我需要将3个csv文件加载到我的表中。为此,我使用3个平面文件连接管理器。

现在,我不需要使用3个平面文件连接管理器,而是只需要为所有3个文件使用一个连接管理器。

我知道我们可以使用Multi File Connection Manger来实现此目的,但这只适用于文件具有相同列的情况。

1。我的第一个csv有id,Rate,Amount,Total_Amt列  2.第二个Csv文件具有id,Rate,Amount,Total_Amt,Date,Debt列
 3.第三个CSV文件有id,Rate,Amount,Total_Amt,loss,Gain columns

如何使用多文件连接管理器来实现这种方法。

2 个答案:

答案 0 :(得分:0)

你不能;多文件连接管理器有效地循环您指定的文件,并将相同的设置应用于每个文件。如果您需要不同的设置,您需要使用不同的连接管理器或创建自己的连接管理器(这可能只是三个独立连接管理器的包装器)。

无论如何听起来像是一个不寻常的要求;只有一个连接管理器的原因是什么?

答案 1 :(得分:0)

您可以尝试将OLEdb insteat平面文件用作Sathya Narayanan Srinivasan explains in her post

  1. 创建新的连接管理器
  2. 选择新Oledb连接
  3. 选择提供程序作为Microsoft Jet 4.0 Oledb提供程序
  4. 在左侧的同一窗口中选择后,您将有两个要切换的标签。一个是All(提到连接的属性),另一个是连接信息
  5. 全选。您会看到一个名为ExtendedProperties的属性。
  6. 在该粘贴中没有引号:“text; HDR = Yes; FMT = Delimited”
  7. 还有另一个名为Mode的属性,它将提到16(readonly),如果你想将它的Read / Write改为19。
  8. 在连接选项卡下的“服务器或文件名”文本框中,提供csv文件的路径。只提供它直到文件夹名称而不是csv文件本身。 (例如:如果您的文件是c:\ sathya \ contact.csv,请将其命名为c:\ sathya)
  9. 如果您已将模式更改为19即读/写,则可以在Oledb源任务,查找任务和Oledb目标任务中使用此Oledb连接。
  10. 在编写查询以从csv获取时,由于您只提供了作为数据源的文件夹,因此需要编写查询,例如“select * from contact.csv”
  11. 替换步骤10以制作您自己的查询:

    1. 选择id,Rate,null作为Amount,Amount,Total_Amt,null作为Date,null作为来自yourFile.csv的债务
    2. 从yourFile.csv中选择ID,Rate,Amount,Total_Amt,Date,Debt
    3. 等等
    4. 免责声明:未经测试。