微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将变量从批处理文件传递到SSIS包

如何解决将变量从批处理文件传递到SSIS包

| 我创建了一个从批处理文件获取变量并将其用于执行的程序包。 我从批处理文件发送为: 退出输出% 并设置Execute processtask的Output,但无法进一步访问它。 请帮忙。!     

解决方法

我认为您应该回显变量%Output%,而不是与Exit命令一起使用。 下面的示例演示如何将字符串从批处理文件传递到SSIS: 屏幕快照#1显示了此示例中使用的批处理文件的内容。 屏幕截图2显示了执行流程任务配置。变量BatchOutput的类型为字符串。 屏幕快照#3显示了在批处理执行任务之后添加了脚本任务ѭ0。 在脚本任务中,我将在脚本任务代码部分下显示代码,以显示变量BatchOutput的内容。 执行任务应显示变量的内容,该内容实际上是批处理文件中回显的文本。请参阅屏幕截图4。 脚本任务代码:(使用下面给出的代码替换脚本任务中的Main()方法) 可以在ѭ1中使用的VB Main()方法代码
Public Sub Main()
    Dim varCollection As Variables = Nothing    

    Dts.VariableDispenser.LockForRead(\"User::BatchOutput\")
    Dts.VariableDispenser.GetVariables(varCollection)

    MessageBox.Show(varCollection(\"User::BatchOutput\").Value.ToString())

    Dts.TaskResult = ScriptResults.Success
End Sub
只能在
SSIS 2008 and above
中使用的C#Main()方法代码 。
public void Main()
{
    Variables varCollection = null;
    Dts.VariableDispenser.LockForRead(\"User::BatchOutput\");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    MessageBox.Show(varCollection[\"User::BatchOutput\"].Value.ToString());
    Dts.TaskResult = (int)ScriptResults.Success;
}
希望能有所帮助。 屏幕截图1: 屏幕截图2: 屏幕截图3: 屏幕截图4:     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。