我有3个SSIS变量,即设置了初始值的姓名,年龄,性别。我想将这些值写到excel工作表中的一行。稍后,我将其扩展到记录数组。
为此,我创建了 Excel连接,将excel工作表附在我要编写的位置。
我添加了控制流任务并双击,然后添加了 Derived column 组件,以为上述3个变量中的每一个创建派生列。在派生列编辑器中,我选择了上述变量作为新派生列。
然后通过管道传输excel目标组件并将工作表列映射到派生列。我执行了SSIS程序包并成功。但是变量不会写入excel工作表。
我做错了什么?
答案 0 :(得分:3)
同样,您需要来源。我给你一个“简单”的解决方案。这可能是解决您问题的最佳方法:
这次,源将是脚本组件(选择源)。
添加脚本组件后的步骤:
添加以下代码
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
的建议明确列出步骤将变量表达式分配为
"SELECT '"+@[User::name]+"' as Name,'"+@[User::gender]+"' as Gender,"+(DT_WSTR,4 )@[User::age]+" as Age"
添加 OLE DB Source 组件并将数据访问模式设置为来自变量的 SQL命令,然后在下拉列表中选择变量 selectQueryVariables 。现在,源代码已准备就绪,其中包含三列“名称”,“年龄”和“性别”。
使用 Excel Destination 并在地图列的源和目标处添加管道。