如何解决将变量从批处理文件传递到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 举报,一经查实,本站将立刻删除。