【问题标题】:Multi File Connection Manager in SSISSSIS 中的多文件连接管理器
【发布时间】:2012-06-18 07:38:31
【问题描述】:

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

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

我知道我们可以为此目的使用多文件连接管理器,但这仅适用于文件具有相同列的情况。

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 列

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

【问题讨论】:

  • 对不起,只使用一个连接管理器的原因是什么?

标签: ssis


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以尝试在Sathya Narayanan Srinivasan explains in her post 中使用 OLEdb instea 平面文件。

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

    替换步骤 10 以进行您自己的查询:

    1. 从 yourFile.csv 中选择 id, Rate, null 作为 Amount, Amount,Total_Amt, null 作为 Date, null 作为 Debt from yourFile.csv
    2. 从 yourFile.csv 中选择 id、Rate、Amount、Total_Amt、Date、Debt
    3. 等等

    免责声明:未经测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      相关资源
      最近更新 更多