问题标签 [ssis-2014]

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 投票
0 回答
231 浏览

ssis - 如何在 SSIS 2014 中永久修复目标列映射

我在 Visual Studio 2015 中有一个 SSIS 2014 解决方案。该解决方案有多种配置。该解决方案受 Git 的源代码控制。该项目已设置为项目部署。

SSIS 2014 项目

我遇到的问题是,每当有人进行更改并将其签回 Git 时,目标中的列映射就会不断消失。失踪不会发生在同一地区。

消失的列图

我曾尝试重新创建项目,然后是整个解决方案,但这一直在发生。我什至重新创建了解决方案并将其放在 Git 的不同存储库中。这是我与 SSIS 合作 10 多年以来第一次看到这样的事情。

到目前为止,我还没有在不同的搜索引擎上找到任何东西。

编辑:

源只是在“SQL 命令文本:”框中键入的带有 T-SQL 查询的常规 OLE DB 源。没有什么花哨。

在此处输入图像描述

该项目有一个主包和 8 个子包。使用“执行包任务”调用该子包。所有子包都是自包含的,因此不会从主包传递任何参数。

失踪不在同一地区发生

这意味着未映射的目标列在 8 个子包中的任何一个中的数据流上随机发生。每次我们打开包检查包逻辑时,情况都会有所不同。目的地只是 OLE DB 目的地。所以这里也没什么好看的。

在此处输入图像描述

因此,只要团队中的任何人对任何包进行更改,任何数量的子包都会在其数据流中随机取消映射列。这种行为没有模式。这就是为什么它如此令人抓狂。

0 投票
1 回答
80 浏览

sql-server - 适用于 SQL Server 2014 的 SSIS 数据工具(vb.net 脚本任务都不起作用,即使使用默认代码)

我已经安装了 SQL Server 2014 数据工具。当我添加脚本任务并使用 C# 时,它可以工作。但是当我添加脚本任务并选择 vb.net 2012 时,然后单击编辑脚本并保存。

之后单击确定并为所有脚本获取此错误消息,请注意我还没有添加 vb.net 代码。

包中包含的脚本有编译错误。是否要保存更改?

非常感谢任何帮助。

0 投票
1 回答
490 浏览

sql-server - Windows 7 Pro x64、Visual Studio 2017 x64、SSIS/SSAS/SSRS x64、SSDT x64、SQL Server 2014 x64 - 兼容性问题?

由于业务的一些要求,我不得不将 SSIS 引入我的 SQL Server 工作中,因为我无法使用 SQL Server 和 SSMS 的标准安装中现成的其他方法来实施更改。

直到 SSIS 要求一切正常:SSMS 运行良好,使用 VS2010 shell 将 SSRS 报告直接部署到服务器,并且能够比使用 Report Builder 更好地维护我的报告。但它对于几个项目来说是不够的,所以选择了 SSIS 来解决这个不足。

在部署包之前一切正常。开发、测试和构建 - 包就像一个魅力。但是部署的包是行不通的。故障排除指向 32/64 位问题,并且仅在服务器代理作业属性中的高级配置中检查了选项“32 位运行时”之后。当我安装和使用的所有东西都是 64 位时,这怎么可能?显然,这会带来额外的问题(ODBC 驱动程序、其他应用程序都需要 32 位版本)并且解决这些问题并不像微软认为的那样明显,如果可能的话。

然后,遵循以下逻辑:如何使用 Microsoft Stack 设置真正的端到端 64 位环境?

0 投票
0 回答
46 浏览

ssis - SSIS2014如何在同一个DataFlowTask中获取Destination组件的状态

我正在使用SSIS 2014。我有几千万行来自 Attunity Oracle Source 组件,它的源查询有 20 列,而且很耗时。出于某种原因,我需要在另一个引用第一个表的表中插入同一查询的 2 列。

我想避免在另一个 DataFlowTask 中再次调用查询,因此我正在考虑创建一个WAIT till x_01 finishes脚本组件任务,该任务将在x_01OleDB 目标完成时进行验证,然后继续插入第二个表。

请了解我想在这里实现的目标:这里

我正在考虑使用x_01_FinishedPackage Scope 变量并在从 触发 PostExecute 事件时更改其值,但不幸的是 PostExecute 在OleDB 目标级别x_01不可用。x_01

问题一:

有没有办法在脚本组件代码中获取其他组件的状态?

类似于以下内容:

问题2:

您认为使用这种技术会极大影响包装性能吗?

更新 1

已经用非常少量的数据尝试了Nick.McDermaid的建议。我创建了 2 个临时表,一个在第一列中带有 PK,第二个表在第一个表的这个 PK 中带有 FK。即使有这么少量的数据,我也得到了这个错误:The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tmp_1_tmp_2".您可以在下面的屏幕截图中看到插入确实非常快,并且在第二个数据块中,x_02打算在第一个数据块之前插入的对象(这是不可能的由于这个FK)

所以,我的下一个想法是在插入第二个表之前只读取第一行的同时几毫秒。我们将看看这是否有帮助。

截屏

0 投票
1 回答
144 浏览

sql-server - 在 SSIS 表达式中将数字转换为 wstr 后格式错误

我需要在派生列中的表达式中将 double 转换为 wstr 以构建消息。当我用数字这样做时0.5(DT_WSTR, 50)0.5。然后,我得到了一个错误的格式:,5. 缺少并且0小数点分隔符已更改。

0.5请问如何在投射时获得具有格式的数字?

谢谢您的帮助。

0 投票
3 回答
371 浏览

sql-server - 使用 SSIS 将字符串值的行转换为数据流中的一列

我需要转置一些连接在数据流中的一列中的字符串,但我找不到合适的解决方案。

我有数百万行是这样的:

我需要像这样转置这些行:

我尝试了枢轴转换,但它似乎不适合这个问题。

请问我该怎么做?

谢谢您的帮助。

0 投票
2 回答
732 浏览

sql-server - SSIS Foreach 循环遍历名称中带有“crosswlk”的文本文件

在我的 Foreach 循环中,我只想处理文件名中包含crosswlk的文件。不幸的是,这是在文件名的中间,我不能做crosswlk.pgp

我用谷歌搜索了一堆,大多数解决方案都说在脚本任务中做一些 C# 来完成这个。似乎我应该能够在 Foreach 容器中执行此操作,也许在带有表达式的集合区域中。但是我在属性表达式编辑器中找不到有关各种属性的任何信息时遇到了麻烦。FileSpec名称和FileNameRetrieval属性之间有什么区别?

我以为我可以做类似的事情:

对我来说,这意味着只处理文件名中包含crosswlk的文件。但这行不通。我确实注意到crosswlk这个词总是从文件名中的第 13 个字符开始,所以我尝试使用子字符串,但也没有运气。

有没有办法以这种(或另一种)方式过滤文件名,或者使用 C# 是唯一的方法?非常感谢!

0 投票
1 回答
959 浏览

sql-server - 错误 0xC0011008 包加载失败

SQL Server Agent在执行SSIS包时面临一种奇怪的行为。

我的工作包括许多步骤(主要是 SSIS 包)。有些步骤几乎每天都会失败,即使所有步骤的配置都相同。

我试图删除/创建作业,删除/创建SQL Server Agent Proxy但没有成功。

我找不到失败的步骤和成功的步骤之间的任何区别。

这是 SQL Server 代理返回的错误:

由于错误 0xC0011008 “从 XML 加载时出错。无法为此问题指定更多详细的错误信息,因为没有传递详细错误信息的事件对象

SQL Server 版本:2014

SSIS 版本:2014

编辑 :

在事件日志中,我发现了一个Information MessageUser Profile Service

Windows 检测到您的注册表文件仍在被其他应用程序或服务使用。现在将卸载该文件。保存您的注册表文件的应用程序或服务之后可能无法正常运行

进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Control Panel\International

进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Software\Microsoft\Windows \当前版本

SID对应于Proxy User用于执行 SQL 作业的步骤。并且在 SQL Agent 中发生错误时,时间戳对应的是相同的。

我认为这是导致步骤失败的原因。

我们可以阻止 Windows 卸载此注册表吗?

0 投票
1 回答
24 浏览

sql-server - SSIS 2014 - 列镜像

我有一个如下表:

Col1 | col2 | col3 |col4 | col5

现在读完这张表后,我想把它分成两部分:

第 1 部分将有: col1 | col2 | col3 | col4

第 2 部分将有: col1 | col2 | col3 | col5

我希望源表中的所有行都出现在两个部分中。它只是我必须在两边拆分前 3 列。

你能帮我解决这个问题吗?

0 投票
0 回答
150 浏览

sql-server - SSIS 目录 - Powershell - 访问包变量

正如标题所暗示的,我正在寻找访问包中的变量,当它存储在 SSIS 目录中时,使用 powershell。我希望这样做的原因是包变量允许我初始化对象并将其从 powershell 传递到 SSIS 脚本(SSIS 目录中的项目参数和环境变量不能具有对象类型的参数/变量)

如果包存储在旧的集成服务存储(MSDB 数据库中的文件夹)中,我可以使用 ManagedDTS 对象访问变量。

使用新的 IntegrationServices 包,这是提供的与 powershell 中 SSIS 目录中的包交互的方式,我似乎无法找到访问这些变量的方法。

如果 SSIS 项目存储在 SSIS 目录中,是否可以使用 powershell 访问这些变量?