问题标签 [dtexec]

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 回答
1314 浏览

ssis - 通过 DTExec 调用 SSIS 包失败 - 通过 VS 很好

我有一个 SSIS 包,当我在 VS 中按下“开始”按钮时,它运行良好,但是当我通过 DTExec 运行它时,它正在轰炸一部分,并出现以下错误。

我可以看到包被正确调用,因为我可以看到所有不同的验证和预执行步骤。这些是整个运行过程中出现的唯一错误。

到目前为止,我在谷歌上搜索到的所有这些错误通常都带有某种额外的错误。不是这里的情况。

令我困惑的是为什么它会手动运行,而不是通过 cmd。

编辑:完整的错误输出

控制流视图

数据流视图开启

连接管理器

测试流数据片段

0 投票
0 回答
982 浏览

ssis - 由于 SSIS 中的错误 0x80040154 dtexec 错误,无法创建 dts.application

dtexec.exe是否应该在不安装集成服务或 SQL 服务器的情况下执行 SSIS 包?

0 投票
0 回答
27 浏览

sql-server - 找不到指定的文件 | SSIS | 在 SQL Server 上使用 Dtexec 执行包 SSIS

我对包 SSIS 有疑问。

我正在使用 SSIS 将 Excel 文件中的信息加载到 SQL Server 上的表中。我的文件在桌面上并且使用 Dtexec 成功执行了包但没有任何反应,如果您将文件的目录更改为我的文档,则文件成功执行并将信息加载到表中。一定会发生什么?

0 投票
1 回答
508 浏览

sql-server - 从文件系统执行 SSIS 包

我们使用以下写入批处理文件的命令执行 SSIS 包。(本地 MSSQL DB)D:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTEXEC.exe>" "E:\Packages\SSISPKG1.dtsx" /Config "E:\Packages\Config\config.dtsConfig ”。

现在我们迁移到 AWS RDS-MSSQL 服务。如何执行存储在 S3 存储桶中的 .dtsx 文件。 RDS - MSSQL 的 DTEXEC.exe 的路径是什么。(微软 SQL 服务器)?

正如我所假设的,RDS-MSSQL 服务创建了一个隐藏的 EC2 实例来处理和存储数据。是否可以在该实例上创建一个文件夹以保留 .dtsx 文件并在需要时运行批处理文件?

0 投票
0 回答
440 浏览

sql-server - 使用命令提示符执行 SSIS 包

我正在尝试使用命令提示符执行 SSIS 包。

我安装了 Visual Studio 2019 社区版,并在安装过程中选择了“数据存储和处理”。还安装了来自 Visual Studio 扩展的 SQL Server 集成服务项目。

我寻找 Dtexec.exe 并在下面提到的位置找到它。C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn C:\Program Files (x86)\Microsoft SQL Server\130 \DTS\宾恩

我在 C:\Program Files 下找不到 64 位 Dtexec.exe

我使用 Visual Studio 2019 创建了一个 SSIS 包。

我尝试使用批处理文件从命令行执行包。

"C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\dtexec.exe" /FILE "C:\Users\Ash\source\repos\DR Activity 1\DR Activity 1\Package.dtsx" /MAXCONCURRENT "-1" /CHECKPOINTING OFF /REPORTING EWCDI 暂停

我收到一条错误消息说明

从 XML 加载脚本任务时出现异常:System.Exception:脚本任务“ST_07a17c9047774ce7ad850af7a94a9ca5”使用此版本的集成服务不支持的 15.0 版脚本

0 投票
1 回答
68 浏览

ssis - 从 SSMS 运行 DTEXEC 以运行 SSIS 目录包

我想在使用 DTEXEC 的存储过程中使用 Catalog 执行 SSIS 包:

DECLARE @cmd varchar(8000)
DECLARE @params varchar(4000) SELECT @params = '/SET \Package.Variables[User::VarBigInt].Properties[Value];"' + CONVERT(char(10), @VarBigInt) + '" ' SELECT @params = @params + '/SET \Package.Variables[User::VarDate].Properties[Value];"' + CONVERT(NVARCHAR(20), @VarDate,101) + '" '

SELECT @params = @params + '/SET \Package.Variables[User::VarDestination].Properties[Value];"' + @VarDestination+ '"'
SELECT @params = @params + '/SET \Package.Variables[User ::VarBoolean].Properties[Value];"' + CONVERT(CHAR(1), @VarBoolean) + '"' SELECT @params = @params + '/SET \Package.Variables[User::VarString].Properties[ Value];"' + @VarString+ '" ' SELECT @params = @params + '/SET \Package.Variables[User::VarList].Properties[Value];"' + @VarList+ '" '

SELECT @cmd = 'dtexec ' +N'/ISSERVER ""\SSISDB\test\test'+ @PackageName +'" /SERVER ""'+ @DestServerName +'""" /ENVREFERENCE 1 ' + @params + '"$ ServerOption::SYNCHRONIZED(Boolean)";True'

这是失败的

SELECT @params = @params + '/SET \Package.Variables[User::VarDate].Properties[Value]";' + 转换(NVARCHAR(20), @VarDate,101) + '''"'

在运行存储过程以将其部署到目录时:选项“ /SET \Package.Variables[User::VarDate].Properties[Value];01/15/2019”无效。

VarDate 是 SSIS 包中的日期时间变量。

0 投票
2 回答
311 浏览

sql-server - 是否可以通过在 DTExec 命令行中传递不同的值来覆盖通过表达式计算的变量值?

是否可以通过在 DTExec 命令行上传入不同的值来覆盖通过表达式计算的 SSIS 包中变量的值?

我有一个参数化查询,我将变量传递User::StartDate给它。包名称是 OpenAirExport.dtsx。

如果我使用 PowerShell 中的 DTExec 调用我的包,我可以在命令行上很好地设置 StartDate 变量。例如:

这工作正常。我可以从结果数据中看到,开始日期确实设置为 2020 年 9 月 22 日。

但是,在 99% 的情况下,程序包只会获取前一天的数据。所以我在 StartDate 变量上设置了一个表达式来计算它的值:

(这个看起来相当复杂的表达式只计算从第 0 天开始的天数,然后将它们添加到第 0 天并减去 1。这是 SQL Server 中从日期时间中剥离时间的一种相当标准的方法,只留下日期。在这种情况下它将给出昨天 00:00 的日期时间)

现在,如果我在 PowerShell 中使用 DTExec 调用包而不设置 StartDate 变量值,它会给出正确的结果 - 昨天的数据。

不时有下游流程失败,我们被要求重新运行前一天的数据。所以我希望能够用从命令行传入的值覆盖 StartDate 的计算值。但我发现,如果我尝试从命令行设置值,该值将被忽略,并且该表达式仍用于计算 StartDate。

有什么方法可以强制 SSIS 用从命令行传入的值覆盖表达式值?

0 投票
0 回答
32 浏览

ssis - 尝试使用 dtexec 运行包时出错

我正在尝试从命令行运行一个包,并计划通过批处理来安排运行。

我输入以下

生成此错误

开始时间:上午 11:18:01 由于错误 0x80070005,无法加载项目“C:\Users\XXXXXX\Documents\Batch\ScheduleRun\ScheduledRun\ScheduledRun”。说明:对路径“C:\Users\XXXXXX\Documents\Batch\ScheduleRun\ScheduledRun\ScheduledRun”的访问被拒绝。来源:mscorlib 开始时间:上午 11:18:01 结束时间:上午 11:18:01 经过时间:0.047 秒

我尝试以管理员身份运行 CMD,但我得到了同样的错误。知道这可能是什么原因吗?

谢谢SJ

0 投票
0 回答
77 浏览

sql-server - 无法在 SQL Server 2019 的 Dtexec /ISServer 命令中获取错误代码和描述

我正在运行使用下面给出的 dtexec 命令在 Visual Studio 2019 中开发的 SSIS 包。我们使用的是 SQL Server Management Studio 2019 版本。包被部署到集成服务目录。

如果包中有错误,我看到的只是:

要检查错误,我应该转到All Executions集成服务目录。

如果我从 skybot 作业运行 Dtexec 命令,如果 skybot 作业失败,我如何获取错误日志?理想情况下,我希望获得以下格式的错误、错误代码、来源和描述详细信息:

0 投票
1 回答
433 浏览

ssis - SSIS 的 DtExec 32 位与 64 位混淆

这个问题以前曾以不同的方式提出过,但我找不到满意的答案。

我们是一家基于 MS 的商店,我们拥有大量 SQL 2016 数据库。我们还大量使用 SSIS 2016,在我所在的地区,我们专门使用目录 (SSISDB) 部署模型。

我们的许多 SSIS ETL 不仅仅是简单的加载或提取。它们是每晚批次的一部分。它们在调度程序上运行。一个典型的批次可能是这样的

  • 运行 SSIS 项目 A
  • 拿起 A 制作的一些文件
  • 将它们 ftp 到某处并存档原件
  • 拾取一些其他文件并将它们放在某个地方
  • 然后运行 ​​SSIS 项目 B 处理上述内容
  • ETC

我们的批处理脚本通常是 python,我们使用 DtExec 来运行 ETls。我们的 python 脚本所在的调度程序机器与 SSISDB 或 SSIS 机器绝不是同一台机器。我们使用 DtExec 调用远程数据库服务器并调用 ETL。

调度程序机器本身不是数据库服务器,没有安装 SQL 2016,只安装了 SSMS 2016,它为我们提供了 32 位 DtExec。

但现在看来我也需要 64 位 DtExec,而且似乎只有在调度程序框中也安装集成服务时才能得到它。

这是一个问题,因为许可,而且我不希望另一个 SSIS 服务实例在那里运行。无论如何,它不会用于任何事情。我只想要像 DtExec 这样的 64 位客户端工具。

问题基本上是如何将 64 位 DtExec 安装到不是 SQL Server 甚至不是集成服务服务器的机器上。如何在简单的客户端计算机上获得 64 位 DtExec?

编辑:另一方面,我真的需要 64 位 DtExec 在 64 位服务器上以 64 位模式运行 SSIS 吗?当然那是一个远程调用,并且 DtExec 客户端在多少位下编译应该无关紧要吗?

感谢您阅读

卡斯滕