从SSIS变量写入Excel Destination

时间:2018-06-27 10:16:32

标签: ssis

我有3个SSIS变量,即设置了初始值的姓名,年龄,性别。我想将这些值写到excel工作表中的一行。稍后,我将其扩展到记录数组。

为此,我创建了 Excel连接,将excel工作表附在我要编写的位置。

我添加了控制流任务并双击,然后添加了 Derived column 组件,以为上述3个变量中的每一个创建派生列。在派生列编辑器中,我选择了上述变量作为新派生列。

然后通过管道传输excel目标组件并将工作表列映射到派生列。我执行了SSIS程序包并成功。但是变量不会写入excel工作表。

我做错了什么?

3 个答案:

答案 0 :(得分:3)

同样,您需要来源。我给你一个“简单”的解决方案。这可能是解决您问题的最佳方法:

这次,源将是脚本组件(选择源)。

添加脚本组件后的步骤:

  1. 选择来源
  2. 转到输入和输出
  3. 添加输出列(不要忘记数据类型)

Output Columns Image

  1. 返回到脚本
  2. 添加变量(性别,姓名和年龄)

Image adding variables

  1. 进入脚本
  2. 添加以下代码

    public override void CreateNewOutputRows()
    {
       Output0Buffer.AddRow();
       Output0Buffer.Age = Variables.Age;
       Output0Buffer.Gender = Variables.Gender;
       Output0Buffer.Name = Variables.Name;
    }
    

答案 1 :(得分:1)

您需要一个来源。 最简单的将是使用SQL连接。

使用名为SQL的字符串类型的变量。

Uncaught Error in onSnapshot: Error: Missing or insufficient permissions.

将源设置为SQL变量。

将此源​​连接到目标,您应该有1行3列

答案 2 :(得分:1)

按照 @KeithL

的建议明确列出步骤
  1. 创建具有 string 数据类型的SSIS变量 selectQueryVariables
  2. 将变量表达式分配为

    "SELECT '"+@[User::name]+"' as Name,'"+@[User::gender]+"' as Gender,"+(DT_WSTR,4 )@[User::age]+" as Age"
    
  3. 添加 OLE DB Source 组件并将数据访问模式设置为来自变量的 SQL命令,然后在下拉列表中选择变量 selectQueryVariables 。现在,源代码已准备就绪,其中包含三列“名称”,“年龄”和“性别”。

  4. 使用 Excel Destination 并在地图列的源和目标处添加管道。