问题标签 [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 投票
1 回答
394 浏览

sql-server - 如何在 SSISDB 中将可执行错误作为消息公开

我们目前正在从作为夜间批处理作业的一部分运行的 SSIS 执行进程任务中调用使用 python 构建的可执行文件。这一切都很好,但是当可执行文件失败时,只会引发一个非常基本的通用错误消息,而不会引用真正的底层错误。当可执行文件通过命令行运行时,底层错误正确返回。

无论如何,当通过 SSIS 执行过程任务调用并将其写入或记录到 SSISDB 目录时,我们是否可以冒泡可执行文件的潜在错误?

请参阅下面的现有错误以及应返回的理想错误(当前从命令行运行时返回)。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
51 浏览

sql-server - SSISDB 附带的过程导致过滤索引出现问题

我相信SQL Server 2014 。出于某种原因,其中的程序SSISDBQUOTED_IDENTIFIER设置为关闭,并且想知道是否有人有任何参考框架来说明为什么会这样,以及它是否重要。

不幸的是,我不知道是否建议更改这些程序以将其设置为ON,但如果有人对此有任何想法,我将不胜感激。

0 投票
0 回答
313 浏览

sql-server - 如何使用 BIML 在 SSIS 脚本组件(转换)中动态生成输入/输出列

如何使用 BIML 动态生成脚本组件(转换)输入和输出列?

我创建了microsoft-ssis.blogspot.com 的 2015-02 示例

这种方法的问题是脚本组件的输入和输出列是硬编码的。

我有 1000 个文件。对于每个文件,组件中的输入和输出列都会有所不同。有人可以帮我吗?

提前致谢

阿尼尔

0 投票
0 回答
106 浏览

sql-server - 已部署的 SSIS 包抛出错误。在本地运行良好

我必须编辑其他人编写的 SSIS 包。在 Visual Studio 中加载包时,我收到错误“无法解密受保护的 XML 节点”。我通过在项目和单个包(dtsx)级别将属性保护级别设置为“不保存敏感数据”来解决此错误。之后我能够成功构建解决方案而没有任何错误,并且能够成功执行包。现在将此包部署到服务器后,当我尝试从 SQL Server 代理作业运行它时,我收到以下错误:1)“找不到脚本的二进制代码”2)缺少类型或命名空间... ,在 ScriptMain.cs 中找不到

任何关于如何解决它的想法都会有所帮助。

0 投票
1 回答
984 浏览

sql - Devops 部署将参数\参数传递给 SQL 脚本

我正在尝试运行一个为 SSIS 包创建环境变量的脚本。
根据目的地,即 SIT、UAT 或 PRD,我希望我的脚本根据目的地使用不同的变量值。在我的脚本中,我有一个变量@DepoyServer,我希望在使用执行 SQL 脚本任务时将其填充为 Devops 的参数或参数。
然后,我的代码查看 this 设置的内容,并为每个环境设置其他公共变量,例如,数据库连接字符串变量将设置为环境的变量。示例脚本代码将是: -

SQL 脚本文件路径使用以下方式设置: - $(System.DefaultWorkingDirectory)/path/SQLScript.sql

有一个参数字段。我已经把它弄死了,但我得到的是 DACPAC 的例子。

0 投票
0 回答
83 浏览

oracle - SQL 代理作业上的 SSIS 部署失败 - Oracle 连接管理器

我设计了一个 SSIS 包,它使用 SSIS 2014 - Microsoft OLEDB Provider for Oracle 从 Oracle 数据库中提取数据。我可以通过手动执行 SSIS 运行包,但是在将其部署到 SQL Server 代理作业时出现错误。我不明白为什么它只在 SQL 代理作业中部署时失败,但在通过存储包手动执行时却完美运行。

已在以下配置中应用

  • 创建代理帐户
  • 在“执行选项”选项卡下,选中“使用 32 位运行时”复选框
  • 安装了 Oracle 32 客户端 (ODTwithODAC122011)

Message Executed as user: DOMAIN\administrator. Microsoft (R) SQL Server Execute Package Utility Version 12.0.6024.0 for 32-bit Copyright (C) Microsoft Corporation. All rights reserved. Started: 11:26:07 AM Error: 2021-03-09 11:26:44.14 Code: 0xC0202009 Source: SITPACKAGES Connection manager "ORACLE.SOURCE" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "OraOLEDB" Hresult: 0x80004005 Description: "ORA-12154: TNS:could not resolve the connect identifier specified". End Error Error: 2021-03-09 11:26:44.14 Code: 0xC020801C Source: Project Interface Source [274] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ORACLE.SOURCE" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2021-03-09 11:26:44.14 Code: 0xC0047017 Source: Project Interface SSIS.Pipeline Description: Source failed validation and returned error code 0xC020801C. End Error Error: 2021-03-09 11:26:44.14 Code: 0xC004700C Source: Project Interface SSIS.Pipeline Description: One or more component failed validation. End Error Error: 2021-03-09 11:26:44.14 Code: 0xC0024107 Source: Project Interface Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 11:26:07 AM Finished: 11:26:44 AM Elapsed: 36.984 seconds. The package execution failed. The step failed.

有没有人知道我应该怎么做?谢谢你!

0 投票
1 回答
112 浏览

ssis - 如何使用 SSIS 变量值或项目参数值作为表达式主体,然后将其评估为另一个变量

我有一个 SSIS 项目(Visual Studio 2019 - 项目部署模型),其中包含 100 个 SSIS 包。

每个包的名称结构是TableName _Table.dtsx (例如: 如果我的表名是Employees,那么包名就是:Employees_Table.dtsx)。

每个 SSIS 包都有 2 个变量

具有硬编码的值,

以及使用上述变量值创建查询的变量(表达式评估)

我的问题如下: 最近我们对我们使用的 SSIS 日志记录机制进行了一些更改,所以我不得不去每个 100 个 SSIS 包的 SSIS 包并修改@[User::Logging_sql_statement]变量处的表达式。

因此,为了避免将来发生新更改时必须修改 100 SSIS,我想知道是否有一种方法可以将表达式主体保存到项目参数中,然后将其值作为表达式评估为@[User::Logging_sql_statement]每个 SSIS 包中的变量。

在上述情况下,我以后只需要修改参数的值。

所以我创建了一个项目参数并将其值硬编码如下:

然后我去了 SSIS Packages 并在表达式生成器中执行了以下操作:

但我没有得到值的表达式评估,而是@[$Project::Parameter]只得到它的值。

例如:

在名称为Employees_Table.dtsx 和变量(带有硬编码值)的 SSIS 包中

我想要以下

给出以下值作为结果:

而不是上面的,我得到

有没有办法做到这一点?

0 投票
0 回答
18 浏览

ssis - 自动创建的 Excel 文件

我有一个用于将 excel 文件导入数据库的 SSIS 包。在我的源文件夹中,我得到了一个自动创建的 excel 文件,但我没有创建该文件。即使在我删除它之后,该文件也会重新创建,并且它表明我的用户帐户是该文件的所有者。我不知道是否有任何进程创建该文件。

0 投票
0 回答
15 浏览

ssis - 将 SSIS 数据类型更改为 SQL Server 数据类型

我正在将 Excel 数据导入 SQL 数据库,并使用 SSIS 在数据库中创建了一个新表,其中一些列具有浮点数据类型。是否建议在 SQL Server 数据库中使用浮点数据类型?哪种数据类型最适合用于数字而不是浮点数据类型?

0 投票
1 回答
26 浏览

ssis - 检查源文件夹中是否有文件

我正在使用一个 SSIS 包,它在导入之前从 SQL 表中删除行。在我运行任何任务之前,我想检查源文件夹中是否有文件。如果文件存在,我们将运行我们的其他 SSIS 任务。否则,我们可以在不运行任何任务的情况下完成我们的包。我使用下面的链接来配置检查源文件夹中是否存在文件的脚本任务 http://www.techbrothersit.com/2013/07/ssis-how-to-check-if-file-exists-in.html

我遇到的问题是文件名每天都在变化,这个例子只有在我们一直使用相同的文件名时才有效。有没有办法检查源目录中是否存在 .xlsx 文件?

提前致谢!