在 SSIS 包中将参数值传递给变量会导致运行时错误
Posted
技术标签:
【中文标题】在 SSIS 包中将参数值传递给变量会导致运行时错误【英文标题】:In SSIS package passing parameter value to variable gives runtime error 【发布时间】:2015-11-12 23:32:32 【问题描述】:我正在尝试使用脚本任务构建包并将参数值加载到局部变量。
我创建了项目和包参数。 enter image description here
并将它们调用到脚本任务编辑器中 在脚本编辑器中,我输入了以下脚本 enter image description here 建展成功! 执行包我得到一个运行时错误
在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象 obj,对象 [] 参数,对象 [] 参数) 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object[] 参数,CultureInfo 文化) 在 System.RuntimeType.InvokeMember(字符串名称、BindingFlags bindingFlags、Binder binder、Object 目标、Object[] providedArgs、ParameterModifier[] 修饰符、CultureInfo 文化、String[] namedParams) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
不幸的是,我不明白这个消息。 需要帮助!
谢谢 多夫
【问题讨论】:
脚本消息没用。使用我在此处提到的方法插入代码以显示有用的错误消息(假设您以交互方式运行)***.com/questions/33643521/…。同样根据这种调试方法,单独注释掉每一行,直到找到引发错误的行。它有助于缩小原因。 所以在你的脚本末尾加上catch (Exception ex) MessageBox.Show(ex.Message.ToString());
【参考方案1】:
我能够重现您在上面发布的错误,看来问题出在脚本中变量的大小写上。
首先,您需要确保已将变量设置为只读或读写,您可以在脚本任务的属性中执行此操作
然后你需要更新你的变量:
应该是:
$Project::ServerName 而不是 $project::ServerName
注意 Project 和 project 的区别 - 这就是导致您的问题的原因。
【讨论】:
以上是关于在 SSIS 包中将参数值传递给变量会导致运行时错误的主要内容,如果未能解决你的问题,请参考以下文章