问题标签 [script-component]
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.
vb.net - VB.Net SSIS 脚本修剪前导/尾随空格的所有输入列
我有一个 SSIS 包,它将平面文件中的数据输入到 SQL 2008 数据库表中。第 3 方每天生成平面文件 (.csv)。我需要删除的每个字段中都有前导空格。
我认为脚本组件可以解决问题?
我想让它遍历所有输入列和 LTrim(RTrim) 每一列的所有值。
我在这里找到了这段代码:http ://microsoft-ssis.blogspot.com/2010/12/do-something-for-all-columns-in-your.html
但是,我不知道如何将其更改为修剪值?
我尝试将“ValueOfProperty.ToUpper () ”更改为“ValueOfProperty.Trim () ”,但随后它导致组件“错误 30203:预期标识符...”出现错误
请帮忙??
这是我的 SSIS 数据流:
平面文件 > 数据转换 > 脚本组件 > OLE DB 目标
ssis - ssis脚本组件开空解决方案
我有一个全新安装的Visual Studio 2015 Pro Update 2 + SSDT (June 2016)
.
当我尝试编辑我的 SSSIS 脚本组件的 C# 代码(单击编辑脚本...)时,VSTA 会在没有任何警告/错误的情况下打开,但不会显示任何内容(例如,如果在没有指定要打开的解决方案的情况下调用 VSTA)。
但是我可以看到临时解决方案已在后台的文件夹子文件夹中正确创建:
C:\Users\XXX\AppData\Local\Temp\Vsta\SSIS_SC130...
我什至可以直接从这个文件夹手动打开解决方案,没有任何问题。
知道为什么解决方案不会在 VSTA 中自动打开吗?
vb.net - 动态循环遍历对象
我想通过 SSIS 中的脚本组件导入列。作为输出,我创建了 Col1 到 Col50。通常我会使用
但由于列长度不相同,我想设置一个循环
有可能以某种方式实现这一目标吗?我已经尝试过File1OutputBuffer.["Col" & count]
,但这不起作用。
我想要完成的事情。
让我们说第一个数据集有 3 列然后:
第二个数据集有 5 列然后:
c# - SSIS 脚本转换错误
SSIS 脚本转换出错:找不到脚本的二进制代码。
请通过单击编辑脚本按钮在设计器中打开脚本并确保它
构建成功”
我已经打开编辑器并重建,但显示错误
错误 3“Input0Buffer”不包含“Column1”的定义,并且找不到接受“Input0Buffer”类型的第一个参数的扩展方法“Column1”(您是否缺少 using 指令或程序集引用?)
vb.net - 如何让自定义 dll 在 ssis 脚本组件中工作?
我尝试在一个 inside 中使用我自己的script compoment
.dll ssis
。正常程序给我一个错误:"could not load file or assembly 'xxx' or one of its dependencies. The system cannot find the file specified."
我尝试过的是我去项目-> 在资源管理器中打开并将我的 .dll 放入 bin 文件夹中,但发生了同样的错误。
我找到了这个 C# 代码并将其转换为 vb.net:
但我没有Micorosoft.SqlServer.Dts.**Tasks**
。任何可以帮助我使此脚本正常工作或可以提供另一种解决方案以使我的 dll 在script compoment
?
ssis - 在 SSIS 中复制脚本组件后程序集名称冲突
我创建了一个 SSIS 包(在 VS 2013 中),其中包含一个包含多个脚本组件的数据流任务。我需要添加另一个与现有任务类似的数据流任务,因此我将其复制并粘贴到包中并添加了优先约束,以便新任务在旧任务之后运行。我根据业务需求修改了新建数据流任务中脚本组件中的代码并运行包。我很快意识到,当新的数据流任务运行时,旧数据流中的脚本组件正在执行。诡异的。
经过一些互联网搜索,我找到了这个页面:
http://kohera.be/blog/sql-server/the-dangers-of-copying-script-components-in-ssis/
它描述了数据流任务的复制如何不更改新数据流中任何脚本组件中的程序集名称或根命名空间。显然,在运行时,新脚本的程序集被旧脚本的程序集覆盖。该网页说可以通过将脚本组件复制到另一个包然后将其复制回原始包来解决此问题。大概这会改变每个脚本组件的程序集名称。我很高兴这对他有用,但对我没有用。
我还尝试在此处的脚本编辑器中更改程序集名称:
但这也没有用。旧脚本组件中的代码仍然在新数据流中运行。我猜根命名空间需要更改,但它是灰色的,所以我无法手动更改它。所以我仍在寻找一种不涉及从头开始重新创建脚本组件的解决方案,因为它们包含多个输出,每个输出都有很多列。希望你能有答案。
ssis - 更改来自平面文件 SSIS 的数据的日期格式
我正在从平面文件中读取数据并将它们存储在 OLE DB 目标中。在平面文件中,日期和各种格式
17/02/2014,
28-Apr-14,
30.06.14
我使用派生列转换来检查空列并将其替换为空。据我所见,SSIS 和数据库接受 17/02/2014 格式和 28-Apr-14, 30.06.14 被拒绝。
我想将 28-Apr-14 和 30.06.14 转换为 DB 接受的有效格式。
我进行了一些研究并阅读了脚本任务可以做到这一点,但我不确定如何检查代码。
你能指导一下这是最好的方法吗?
非常感谢任何建议/帮助。
谢谢饶
sharepoint - SSIS 脚本组件源 - 通过 Odata 从 SharePoint 365 列表中读取
如果我的问题没有得到充分的描述,我深表歉意。我是 .Net / C# / SSIS 新手。如果已经回答,也道歉,我已经尝试在这里和谷歌搜索几个小时,但没有运气。
背景:我需要从 SharePoint 365 列表中提取数据行,并将某些列取消透视为准备好导入 SQL Server 表的格式。我意识到 SSIS 有一个 Odata Source 和内置的 Unpivot 组件,并且我已经成功地将它们用于概念验证。
但是,我相信我需要一个自定义脚本组件,因为要从源 SharePoint 列表中取消透视的列数是可变的。每个月左右,都会添加一个新列(它与 SharePoint 中的财务预测“工具”相关,以及最新预测的月份变化)。我的理解是,源列必须在设计时在 SSIS 中定义,所以如果我的源列发生变化,我能想到的解决这个问题的唯一方法是在不每月手动更改 SSIS 数据流的情况下以编程方式组合 Odata 源和 unpivot函数到自定义脚本组件中。
我理解或可以弄清楚非关键逻辑。我正在努力解决的部分是如何实际连接和公开给定列表,它的数据行/列作为列表,我可以循环遍历并执行到输出列的映射。
我请求指导的“起点”是:1) 使用标准 SSIS Odata 连接管理器创建并成功连接到有问题的 SharePoint 站点。2) 在可视化设计器上创建标准“脚本组件”,type = source。3) 从脚本组件属性中,将 Odata 连接管理器与名称“myConnection”相关联。4) 需要帮助 -> 在脚本组件中,打开与特定列表的连接,读取其内容,然后执行反透视逻辑。
出于说明目的,假设源是一个 SharePoint 列表,其中包含两个名为 Study 和 Site 的“固定”字符串列,以及名称与月末日期匹配的可变数量的列(例如 2016 年 9 月 30 日、2016 年 10 月 31 日、等)包含整数值。我想将研究和站点源列映射到同名的目标列,并将列名映射到 ProjectionMonth 并且整数值映射到 ProjectionValue 的月份列取消透视。
这是我想到的基本算法(我意识到这是不可编译的——这就是我需要你帮助的地方!):
编辑:例如,假设源 SharePoint 列表具有以下内容:
我想让脚本组件连接到列表,读取它的内容,然后返回以下非透视数据集,以便最终加载到 SQL Server 中:
ssis - SSIS 包 System.OutOfMemoryException
当我运行 SSIS 包时,一些数据流任务会抛出异常System.OutOfMemoryException
。我在数据流任务中使用脚本组件。这个脚本组件执行查询,从源数据库获取数据,这个数据大约 1,5GB,我把这个数据保存在 DataSet 中。脚本组件 PreExecute 方法中的数据流任务失败。这是我的代码块;
我的包大小是 4069KB。
数据流任务最大缓冲区大小:20MB
数据流任务最大缓冲区最大行数:10000
有人可以帮我解决这个例外吗?