问题标签 [script-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
732 浏览

sql-server - 如何从 SSIS 包中的子脚本任务代码访问序列容器

我有一个带有 4 个序列容器的 SSIS 包。他们每个人都有一个脚本任务。我想从脚本任务代码中捕获容器的名称。我怎样才能做到这一点?我还没有找到访问父对象的方法。

正如@LONG 所评论的那样,我目前已经用变量实现了这一点。我的问题是,因为每个容器完全相同(即它包含相同的任务和代码),所以当我进行更改时,我只在其中一个中进行,然后删除其他 3 个,然后复制/粘贴一个更新。因此,通过变量实现,我需要在复制/粘贴部分之后进行更多更改,这可以通过读取容器名称来避免

0 投票
3 回答
5989 浏览

sql-server - 无法加载脚本以执行

当我尝试使用 C# 代码执行脚本任务时,我在 VS 工作室中收到一条错误消息。代码在编辑器中打开,将成功构建和重建,但是当我运行包时,我得到

“无法加载脚本以执行”。

截图

这是包裹

它在这里构建

这是执行时的错误

输出

0 投票
1 回答
175 浏览

xml - 使用 XDocument.Load 将 DTS 变量用于文件路径

我正在尝试在 SSIS 脚本任务中加载 XML 文件。
这有效:

但这不会:

返回的错误是

“无法将方法组分配给隐式类型变量”。

我哪里出错了?

0 投票
0 回答
639 浏览

sql-server - SSIS脚本任务验证错误

我在 SSIS 脚本任务 (SSIS 2015) 中收到以下错误

将数据添加到 var:Error: 找不到脚本的二进制代码。请通过单击编辑脚本按钮在设计器中打开脚本并确保其构建成功。

做了一些在线研究,并确保根据我的搜索结果执行以下操作:

  1. 延迟验证已设置为 true
  2. 构建已设置为 x86
  3. 我们需要这个脚本在 32 位编译器上运行

在 SQLServer (SSMS) 集成服务目录上作为部署包执行时失败(而不是作为作业)

0 投票
3 回答
12217 浏览

c# - 无法使 SSIS 脚本任务工作

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

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

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

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

3)

错误:

在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 在 System.Reflection.RuntimeMethodInfo。在 System.RuntimeType.InvokeMember 调用(对象 obj,BindingFlags invokeAttr,BindingFlags,BindingFlags 参数,CultureInfo 文化)(字符串名称,BindingFlags bindingFlags,BindingFlags,对象目标,Object[] providedArgs,ParameterModifier[] 修饰符,CultureInfo 文化, String[] namedParams) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

0 投票
1 回答
11114 浏览

sql-server - 当脚本结果正确时,Powershell 返回负退出代码

我制作了以下 PowerShell 脚本:

目标是通过在位置 19 处添加加载时间和时间戳来重命名文件。运行脚本的结果返回以下错误消息:

当我从我的 SSIS 包运行脚本时,我收到以下错误:

我试图搜索此错误消息,但找不到有关此特定退出代码的页面。

问题是虽然从 PowerShell 窗口运行脚本命令时,我仍然会收到错误消息,但文件名确实按预期更改。但是,由于返回错误,SSIS 中的执行流程任务将失败。

我的问题是,这个错误的原因是什么?我认为这与:

其中 $ .BaseName.insert(19,'loadtime') 和 (Get-Date -Format HHmm) 和 + $ .Extension 被视为单独的参数。我对 PowerShell 的了解不是太多,所以这只是我的猜测。

什么可以帮助我摆脱错误?

提前致谢!

0 投票
1 回答
624 浏览

c# - SSIS脚本任务将现有文件添加到项目作为链接导致找不到二进制文件

我以为这很简单,但我想不会。这是正在发生的事情。我创建了一个新包并向其中添加了一个脚本任务。我打开脚本任务并编辑脚本(C# 2010)。在解决方案资源管理器中,我右键单击项目名称 (ST_xxxxxx)。我选择“添加->现有项目”。在文件资源管理器中,我导航到我的文档文件夹并选择(不是双击)我的“test.cs”,它只是一个空类。在文件资源管理器窗口的右下角,在“添加”按钮旁边,单击向下箭头并选择“添加为链接”。为了测试,我选择“Build->Build ST_xxxxx”。构建成功。我保存,然后关闭脚本任务 VS 编辑器。然后我在脚本任务编辑器窗口上单击确定。 出现“脚本错误”窗口。“包中包含的脚本有编译错误”。 如果我保存它,任务上的错误会显示“找不到脚本的二进制代码”

任何想法如何解决这个问题?

我可以通过相同的过程并选择“添加”而不是“添加为链接”,它工作正常。但这会创建文件的副本,并且必须手动更新。我想链接到我所有使用的通用 cs 文件,而不必更新它们。

任何帮助,将不胜感激。

0 投票
1 回答
372 浏览

ssis - 在平面文件 SSIS 中附加标头记录

我创建了一个从OLEDB SourceFlat File Destination的SSIS包。

现在我想做的是在记录之前和之后附加一个额外的行。

我已经在平面文件中有列标题。

ScriptTask可以在末尾追加一行。但是有什么办法,我可以在平面文件中附加第一行。有什么方法可以让我们选择需要追加该行的位置。

即使需要附加的第一行和最后一行也不匹配该文件中的列

假设生成的文件中有 40 列。而需要附加的那一行只有 4 列,而且也不同。

谁能帮我解决这个问题?

0 投票
2 回答
398 浏览

c# - 一个对象怎么可能不等于它自己呢?(SSIS 脚本任务)

问题出在 Main 中间的那行

当 GetEncryptionKey“失败”并返回 noKey 时,“if”仍然采用“else”路径,我不明白为什么。我尝试了这个,结果相同。

除非对 noKey 的每个引用都以某种方式实例化 byte[0] 的新副本,否则我看不出它们如何不相等。我已经走过无数次了,它们看起来确实是一样的。

0 投票
2 回答
482 浏览

c# - 在 C# 中将 Case 语句添加到 REPLACE 函数

首先,我不是 ac# 人,所以请多多包涵。我需要在 SSIS 中的脚本任务中将出现的“D:”替换为“d$”。我确实使用替换功能来做到这一点,但问题是,这对另一行产生了意想不到的后果。

例如,脚本任务发送一封电子邮件,电子邮件的标题为 \servername\d$ \further_path。电子邮件正文为“UID:1:MESSAGE”

发送电子邮件的代码行如下所示:

我得到的当前输出是:

预期的输出是:

查看日志文件夹行和 UID 行

当我使用替换功能时,身体线条也会受到 d$ 符号的影响,这就是我要避免的。我可以在 C# 中编写一个条件 REPLACE 函数吗,或者有没有其他方法来处理这个问题?

谢谢,房车。