无法让 SSIS 脚本任务工作

问题描述 投票:0回答:4

我觉得我缺少一些配置或其他东西,因为我已经遵循了大量的在线教程,但无法获得任何脚本任务的示例。我也无法调试该错误,因为我不是 C# 开发人员。

目前,我只是检查目录中是否存在文件:

1)

User::gvLastMonthImportFile
是字符串(只读)&
User::gvLastMonthImportFileExists
是布尔值(读写)

2) 将

using System.IO;
添加到我的命名空间

3)

string fullPath = Dts.Variables["User::gvLastMonthImportFile"].Value.ToString();
Dts.Variables["User::gvLastMonthImportFileExists"].Value = File.Exists(fullPath);
Dts.TaskResult = (int)ScriptResults.Success;`

错误:

at System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[]参数,签名sig,布尔构造函数) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(对象 obj,对象 [] 参数,对象 [] 参数) 在System.Reflection.RuntimeMethodInfo.Invoke(对象obj,BindingFlags invokeAttr,Binder活页夹,Object []参数,CultureInfo文化) 在System.RuntimeType.InvokeMember(字符串名称,BindingFlags绑定Flags,活页夹活页夹,对象目标,对象[]提供的参数,ParameterModifier []修饰符,CultureInfo文化,字符串[]命名参数) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

c# sql-server ssis etl script-task
4个回答
3
投票

我最近遇到了这个问题,这是因为我没有将变量添加到脚本中。

您必须将 ReadOnlyVariables/ReadWriteVariables 显式添加到脚本任务中,以便通过双击设计器中的脚本任务,选择对话框右侧的“脚本”,然后单击 ReadOnlyVariables 来访问它们/ReadWriteVariables 下拉。

我知道这个回复已经晚了,但这给我带来了很多悲伤,希望它对某人有帮助。


0
投票

运行步骤

  1. 在脚本中添加2行代码。

    Messagebox.Show(Dts.Variables["User::gvLastMonthImportFile"].Value.ToString());
    Messagebox.Show(File.Exists(fullPath).Value.ToString());
    
  2. 保存并关闭脚本,确定脚本任务。

  3. 右键脚本任务,执行任务。

  4. 任务执行时,会弹出消息。请核实数据。


0
投票

我也遇到了同样的问题,被困了几个小时。然后我发现了我的问题。变量区分大小写,我拼错了其中之一。


0
投票

我有类似的问题,但我想要一个屏幕截图来帮助调试这些情况: 关闭神秘的错误提示后,观察调试输出,将会出现一条简短但更有用的错误消息:

© www.soinside.com 2019 - 2024. All rights reserved.