问题标签 [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 回答
675 浏览

sql-server - DTExec.exe CheckFile 和 Validate 失败

我正在尝试使用 DTExec.exe 作为批处理过程的一部分来执行 dtsx 脚本。以下命令行脚本有效:

但是,如果我在实际运行脚本之前尝试对 test.dtsx 文件运行检查/验证,则会失败,退出代码为 6(转换为:该实用程序在命令中遇到语法或语义错误的内部错误线)。

这可能只是我忽略的一个简单错误,我想知道它是否与反斜杠有关,但第一个命令运行良好,因此没有意义。

此外,如果有人可以向我指出 -CheckFile 和 -Validate 之间的区别,那可能会帮助我决定在我的脚本中使用哪个。我只需要在执行之前知道 dtsx 是否工作正常,因为它需要 3 小时才能运行,而且我更愿意早点而不是晚点找到。

参考资料:https ://msdn.microsoft.com/en-us/library/hh231187(v=sql.110).aspx

0 投票
0 回答
228 浏览

sql-server - 从 DTExec 启动时,SSIS 包可以访问网络吗?

我有一个 SSIS 包,它将一些数据从 SQL Server 中提取到 .csv 文件中,然后将文件复制到网络位置(使用 Robocopy)。作为 SQL 代理作业运行良好。当我在自己的机器上使用 DtExec 时,Robocopy 失败并显示“访问被拒绝”。无论我输入哪个网络位置,都会发生相同的错误。如果我使用 Robocopy 尝试复制到服务器上的本地驱动器,它工作正常。DtExec 以我自己的帐户运行。如果我使用远程桌面登录服务器(再次使用我自己的帐户),我可以访问所有网络共享,直接运行 Robocopy 没问题。我始终使用 UNC 名称 - 任何地方都没有驱动器号。

是否有可能 DtExec 在服务器上的某个低权限帐户下运行,无法访问任何网络资源?如果是这样,关于如何解决它的任何想法?

0 投票
1 回答
1285 浏览

dtexec - SSIS 2016 VS 2015 错误 0xC001700A 包中的版本号无效。版本号不能大于当前版本号

我使用升级向导将 SSIS 2008R2 包升级到 SSIS 2016。它升级成功。我的服务器上确实加载了 2008R2 和 2016 SQL Server。我正在执行一个调用升级包的批处理文件。批处理文件正在从“”调用 DTEXEC.exe C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\。我收到这些错误:

0xC001700A 包中的版本号无效。版本号不能大于当前版本号。

0xC0016020 从版本 8 到版本 6 的程序包迁移失败,错误为 0xC001700A。

0xC0010018 从节点 "DTS:Property" 加载值 ",DTS:Property xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:Name="PackageFormatVersion">8" 时出错。

关于下一步我可以尝试什么的任何建议?

0 投票
1 回答
600 浏览

sql-server - dtexec /SET 包变量值未被包使用

我正在使用 SQL Server 2012 和 MS Visual Studio 2010

我有一个带有用户变量PO(字符串)的 DTS 包,我正在尝试使用该变量执行 sql 命令,因此我设置了另一个变量来构建 sql 字符串。

问题是,当我尝试使用带有 的DTEXEC实用程序运行包时/SET,包忽略了我发送的变量值。

我正在使用的命令:

的表达式SQLStringVar"exec my_procedure '" + @[User::PO] + "'"

但是,结果显示SQLStringVar"exec my_procedure ''"或我为User::PO变量的初始值设置的任何值。包运行没有错误。

0 投票
0 回答
729 浏览

powershell - 通过 DTExec 远程执行 SSIS 包:ForEach 循环文件枚举器为空

用于 SSIS / Windows / Powershell 人员的卷曲。

我有一个问题,我有两个 Windows 2012 服务器,我正在尝试远程执行一个 SSIS 包。服务器“D3”是安装了 SSIS 的 SQL 服务器数据库,我可以在 SSIS GUI 中成功执行我的包,也可以通过 DTExec 实用程序使用以下 Powershell 脚本(通常是 cmd,但必须是 powershell,因为使用调用命令进一步向下):

Powershell 脚本 ExecCommandImportSEMA.ps1 如下所示:

当我从 D3 数据库服务器执行此命令时,这没问题。

但是,我实际上需要从 D1(其他 Windows 2012 服务器)执行此调用。我使用调用 Invoke-Command 来让 DTExec 从另一台服务器运行。我使用这个 bat 脚本执行此操作(必须是上游兼容性的 bat)。

这将失败,并在 ForEach 循环组件(查找文件的第一个进程)中出现以下错误,该组件从存在的同一 D3 服务器中获取文件(是的,文件确实存在于那里):

回顾一下:

  • WORKS:在 D3 上本地执行 powershell 脚本到 Invoke-Expression,然后在 D3 上执行 DTExec 实用程序。
  • 失败:在 D1 上执行 bat 脚本,该脚本使用 Invoke-Command 执行与 Invoke-Expression 相同的 powershell 脚本(现在必须在 D1 上),然后在 D3 上执行 DTExec 实用程序。

复杂的。基本上我可以在本地正常运行包,但是使用 bat 脚本和 Invoke-Command 会导致 SSIS 包错误出现在 D1 cmd 提示符上。

来自评论

我在 D3 上尝试了一个本地驱动器文件夹“E:\”,并从 D1 执行它,它实际上可以工作(在 D3 上本地执行时也可以) - 我手动复制了那里的文件,看起来已经删除了一些奇怪的用户的安全设置。指向网络共享驱动器文件夹或文件的权限,尽管我的用户和一般用户组都对共享驱动器文件具有与本地文件相同的权限。奇怪的是,当我在 D3 上时,我可以对网络驱动器上的相同文件执行 SSIS 包,但不能从 D1 执行。

回顾:当文件位于本地驱动器“E:\”上时,可以从 D1 执行 D3 上的作业。当 fi 时,无法从 D1 执行 D3 上的作业

0 投票
1 回答
1394 浏览

ssis - 尝试使用项目部署模型运行 dtexec 时出现 sqldumper 错误

我有一个 SSIS 项目,其中包含多个使用项目部署模型的包,这意味着存在项目级别的参数和连接。

由于这个原因,要使用 执行包dtexec,需要使用两个参数来指定项目,以获取连接和参数,以及包。

为此,首先您必须构建项目以获取.ispac将提供给/project参数的文件。

然后你必须dtexec像这样调用:

问题是当我dtexec这样调用时:

我收到一个丑陋的sqldumper错误,如下所示:

如何在不出现该错误的情况下运行包?

0 投票
0 回答
433 浏览

ssis - dtexec.exe /SET 无法识别属性路径

我为我们经常执行的数据导出设置了一个 SSIS 包,我在 Visual Studio 中运行它没有问题,但是当我尝试使用命令行执行它同时使用 /SET 更改变量时出现问题(如果我使用默认值,不更改任何变量,它也可以正常工作。)。

我有指示包的特定部分是否应该运行的布尔变量,以及用于过滤特定日期的日期变量。我需要能够在使用 dtexec.exe 执行包时更改它们

我正在运行类似的东西:

我收到一条错误消息:

我尝试了许多属性路径的排列,有无引号,各种大写字母,以及用“Properties[Value]”替换“.Value”的替代结构。

有谁知道这里发生了什么以及如何解决它?

编辑:我试图创建一个只有一个变量和一个将其打印到消息框的脚本的虚拟集成。我的集成在没有 /SET 的情况下工作,但如果我尝试使用它会失败。是否有我不知道的设置可能导致这种情况?

0 投票
2 回答
1428 浏览

sql-server - 在 Windows 任务计划中执行时 SSIS 包失败

我有三个 SSIS 包将数据从 SharePoint 同步到 SQL Server,我已将它们放在任务计划中以每天运行,但有时其中一两个会失败。

来自任务计划的错误消息是

操作“C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTExec.exe”,返回代码为 2147942401”

我的任务正在使用服务帐户运行:

如果我取消选中无论用户是否登录都运行,那么一切正常。似乎包无法连接到我在config.dstConfig失败时配置的 SQL Server。失败也导致我的数据库帐户被锁定。但为什么只有一两个包失败,而不是全部?如果我手动运行,为什么一切都很好?任何帮助表示赞赏。

0 投票
0 回答
84 浏览

windows - windows任务计划下的账户有什么权限?

我使用 dtexec 运行 ssis 包,并使用 dtexec...>e:\log.txt 命令将控制台消息写入 txt 文件。如果我手动运行它,它工作正常,但如果我将它放在任务计划中,它就不起作用。似乎没有创建 log.txt 文件的权限。我检查了“以最高权限运行”选项。但是我使用与手动执行此操作相同的帐户。

0 投票
1 回答
288 浏览

sql-server - 使用 DTEXEC 执行引用 mso.dll 的 SSIS 包

抱歉,如果这已得到解答,但我无法找到解决我问题的答案。我有一个 SSIS 包,它有一个脚本任务,它引用:

C:\Program Files (x86)\Common Files\microsoft shared\OFFICE16\MSO.DLL。

通过 SQL Server Data Tools 执行时,包按预期运行。

当部署到集成服务目录并手动执行时,包会按预期运行。然后启用 xp_cmdshell。

使用命令执行包时:

它失败并显示错误消息

无法创建 ActiveX 组件

当另一个 SSIS 包(在脚本任务中没有 Microsoft 对象引用)使用相同的 DTEXEC 命令执行时,它运行成功。

使用命令执行脚本任务包时:

要使用 32 位 DTEXEC,包也会失败并显示错误消息

无法创建 ActiveX 组件

我尝试使用本地系统、本地服务、网络服务、我自己的帐户和服务帐户来更改执行 SQL Server 的帐户——这些帐户似乎都没有任何区别。

我怀疑 DTEXEC 无法访问 mso.dll。

这一定是一种很常见的方法,所以我想我一定错过了一个相当明显的步骤。任何人都可以提供任何帮助吗?

谢谢,

伊恩