Excel文件源SSIS,Excel文件名检索

时间:2016-05-20 06:57:16

标签: ssis

我有一个SSIS包,我正在尝试将数据从Excel文件源加载到OLE DB目标。我想将文件名加载到目标表中,而不是原始文件名的一部分。

任何人都可以为此提供一些提示吗?

Screenshot of the SSIS package

1 个答案:

答案 0 :(得分:0)

如果您不想参数化,则使用“脚本”任务捕获“连接字符串”,然后使用“子串”从“连接”字符串中提取ExcelFileName。

以下是步骤:

  1. 首先创建String类型的变量“FileName”。
  2. 接下来,使用脚本任务并在ReadWriteVariables
  3. 中添加上面创建的变量
  4. 在脚本任务中使用此脚本

      public void Main()
        {
            // TODO: Add your code here
            ConnectionManager con = Dts.Connections["EX_SRC_CON"];
            string conStr = con.ConnectionString;
            int firstCharacter = conStr.LastIndexOf("\\");
            int lastCharacter = conStr.IndexOf(".xlsx");
            string fileName = conStr.Substring(firstCharacter + 1, (lastCharacter - (firstCharacter + 1)));
            Dts.Variables["User::FileName"].Value= fileName;
            Dts.TaskResult = (int)ScriptResults.Success;
        }
    
  5. 请注意,“EX_SRC_CON”是您的Excel连接管理器,仅此而已,我们将提取Excel文件名。从脚本中,您可以看到我们正在将Excel文件写入字符串“FileName”

    1. 接下来,将脚本任务连接到数据流任务(DFT)。在DFT中,在Excel Source中,选择数据访问模式:“SQL Command”并使用以下脚本

      SELECT * ,? 来自[PolicyList $]

    2. PolicyList $是您的工作表名称,我们需要将变量“FileName”映射到?在参数选项卡下。

      1. 接下来,将Excel源中的列连接到OLE DB目标。