0

我正在处理一个场景,我需要将 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 列

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

4

2 回答 2

0

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

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

于 2012-06-18T07:45:44.850 回答
0

您可以尝试在Sathya Narayanan Srinivasan 在她的帖子中解释的那样使用 OLEdb instea 平面文件。

  1. 创建一个新的连接管理器
  2. 选择新的 Oledb 连接
  3. 选择提供程序作为 Microsoft Jet 4.0 Oledb 提供程序
  4. 在左侧的同一窗口中选择后,您将有两个选项卡可以切换。一个是全部(其中提到了连接的属性),另一个是连接信息
  5. 选择全部。您会看到一个名为 ExtendedProperties 的属性。
  6. 在那个不带引号的粘贴中:“text;HDR=Yes;FMT=Delimited”
  7. 将有另一个名为 Mode 的属性,它会提到 16(只读),如果你想让它读/写,请将其更改为 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
  2. 从 yourFile.csv 中选择 id、Rate、Amount、Total_Amt、Date、Debt
  3. 很快

免责声明:未经测试。

于 2012-06-18T07:50:33.027 回答