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

.net - 我如何在存储过程中使用 dtsExec 命令通过从表中传递整个配置来执行 ssis 包?

我正在使用给定的命令行在 sql server 的 sp 中执行 ssis 包。

在哪里,

现在我想通过从表中传递配置(前面存在)来执行相同的包,如果包含表中的配置,Configuration.dtsConfig我该如何编辑这个命令行。@config

0 投票
1 回答
2835 浏览

powershell - 术语“EXEC”未被识别为 cmdlet Powershell 的名称

我有一个要使用 PowerShell 运行的 SSIS dtsx 包。以下是我在 powershell 中运行的内容。

不幸的是,我收到以下错误,我不知道为什么

我也xp_cmdshell使用以下命令在 SQL Server 中启用了

0 投票
1 回答
2307 浏览

sql-server - 将 Project 参数传递给 dtexec

我的 SSIS 包有一个名为 SMTPServer 的项目参数。我在执行 dtexec 时传递如下参数:

但是,我收到了错误:

选项“$Project::SMTPServer;Smtp.my.smtp-server”无效。

我怎样才能解决这个问题?

0 投票
1 回答
47 浏览

sql-server - dtexec /val /proj my.ispac /pack my.dtsx /rep v 立即返回,没有任何消息

我正在尝试使用项目模型设置对 dtexec 的命令行调用以验证包。我这样调用 dtexec :

虽然到 ispac 和 dtsx 的真实路径更长。当我运行它时,我在控制台上看到的只是:

整个事情在一秒钟内运行,这让我相信它什么也没做。即使我要求详细报告,也不会发出任何类型的消息。

关于如何完成这项工作的任何想法?

0 投票
1 回答
46 浏览

sql-server - 失败时不会抛出错误。我在 SQL 代理作业中运行它

我也添加了这部分

但它会引发错误:

更正脚本并重新安排作业。PowerShell 返回的错误信息是:'The term 'True' is not Recognized as the name of a cmdlet"

0 投票
1 回答
166 浏览

sql-server - SQL Server 维护计划如何与 Jobs 和 DTExec 相关联?

SQL Server 维护计划如何与 Jobs 和 DTExec 相关联?

我对维护计划的本地连接特别感兴趣,它似乎以某种方式传递给了 dtexec。

我已经阅读了一些文档,但没有一个足够清楚。正如我所理解的那样:MP 创建一个 SSIS 包以及一个作业......而该作业反过来调用外部应用程序 dtexec...... 它执行 SSIS 包。此包必须访问 SQL Server 并使用维护计划的“本地连接”参数提供的帐户。

我的理解对吗?

欢迎参考 MS 官方详细文档。

0 投票
0 回答
4168 浏览

sql-server - 无法运行 ssis 包,因为未安装 64 位 dtexec

我已经能够使用 SSMS“导入数据”选项和 VS 2017 SSIS 工具箱(SQL Server 2017)成功创建一个 ssis 包(.dtsx)文件。该包本身可以工作,它会读取一个 csv 文件并将其加载到数据库表中。简单的。这是在 Windows 10 上。

我正在尝试在 Win Server 2012 R2 (Azure VM) 命令行上运行这些包,但它不起作用(它在 VS 2017 中确实有效),因为 dtexec.exe 文件都是 32 位的。对于我的一生,我无法安装 64 位 dtexec.exe 文件。

我试过了

  1. 在 Windows 10 上执行相同的程序,并且可以正常工作。我创建了包,然后我可以通过 dtexec /f "path to .dtsx" 运行它

  2. 我尝试将运行时间设置为 32 位( SSIS 64 位与 32 位),但这不是 SSMS 导入数据工具或 VS 2017 SSIS 工具箱设置/属性中的选项。

  3. 我遇到过这个页面(https://www.sqlservercentral.com/articles/how-to-execute-an-ssis-package-from-the-command-line-or-a-batch-file)但我'不确定将这个包变成'包部署模型'是要走的路。

  4. 我尝试将 64 位 dtexec 和相关文件复制到 Win 2012 R2 机器,但未注册 dll 和代码。

  5. 当我尝试在服务器上安装 SSMS 或 SQL Express 时,我没有获得自定义安装的选项。

我已经确认服务器是 64 位的。

我试过一个天蓝色的逻辑应用程序,但我就是不喜欢那样。

这些是我看到的一些错误

代码:0xC001700A

说明:包中的版本号无效。版本号不能大于当前版本号。

由于错误 0x80040154 无法创建 DTS.Application

我想保持简单并创建一个 ssis 包,然后可以通过预定的命令行脚本在服务器上运行该包。为什么在运行 Windows Server 2012 R2 的 Azure VM 上设置如此困难?

下面是我偶然发现的一些资源。在我看来,VS 2017 SSIS 工具箱的做法是 MS 希望人们使用的。他们怎么能如此轻松地创建工作流并将其存储到一个包中(数据流在 VS 2017 内部的 Win 2012 R2 服务器上工作)但是当需要推出它并使其自动化时,一切都崩溃了? 我肯定错过了什么。任何帮助都会很有用。我到底怎么告诉 VS 2017 创建这个包的 32 位兼容版本?

https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/integration-services/lesson-1-7-adding-and-configuring-the-ole-db-destination?view=sql-server-2017

0 投票
1 回答
359 浏览

sql - SSIS 命令行 - ORA-00907:缺少右括号

我正在尝试从命令行运行 SSIS 包,但我不断收到这个

“ORA-00907:缺少右括号”。

该包从 SSDT 运行良好,我使用的查询也是一个简单的查询。我确实尝试在运行时将值传递给查询。

变量声明:

在此处输入图像描述

我的查询使用表达式:

最终查询:(运行良好)

包调用:

0 投票
0 回答
966 浏览

sql-server - 从命令行使用代理帐户执行 SSIS 包

由于扩展了旧系统,我需要从旧 SSIS(另一台服务器)运行 SSIS2016 包。该包从 SQL 代理运行良好,但我无法使用 tsql 或 DTEXEC 运行它。问题是即使在提升的 cmd 中运行(在 sysadmin 下),包也无法访问网络

  1. 我能够从我正在运行包的帐户访问网络驱动器(管理员)
  2. 我知道该包在同一帐户下从 Sql 代理运行时运行良好。
  3. 当文件保存到本地临时文件夹(DTEXEC 和 TSQL)时,包运行良好
  4. 使用 SSMS、TSQL 或 DTEXEC 运行时,包无法将文件保存到网络。

    /li>

从我在互联网上阅读的所有内容来看,似乎运行 SSIS2016 包的唯一方法是使用 SQL 代理和作业。

我对 DTEXEC 忽略执行命令行的帐户的安全上下文这一事实感到惊讶。有没有办法强制它使用代理帐户?

我很难相信,运行具有网络权限的包的唯一方法是使用 Sql 代理和作业。

谢谢你。ps 这是关于运行包的好文章,但它完全忽略了网络访问问题。

编辑 2019-06-10

我应用了 MSSQL2016 CU7 并重新启动了服务器。在这之后,

  • 我能够使用在本地服务器上运行的 DTEXEC 命令将文件保存到网络(以系统管理员身份登录)
  • 我能够使用从本地服务器运行的 sp 将文件保存到网络(以系统管理员身份登录)
  • 在不同机器上以系统管理员身份登录时,我无法将文件保存到网络驱动器。错误是

平面文件目标未通过预执行阶段并返回错误代码 0xC020200E。

无法打开数据文件..

在应该保存文件的数据流中还有警告“访问被拒绝”。

存储过程源代码

我还添加了 System::UserName 以登录包的开始,我看到了正确的帐户。我认为,正如@Piotr 提到的那样,这个问题可能是双跳。我正在挖掘文件服务器日志以查看。

EDIT2 2019-06-10

好的。经过多次讨论,我可以将问题缩小到对 CIFS 执行用户权限的委派。

我做了什么

  • 在开发计算机上设置共享
  • 使用 scriptask 创建包,它尝试创建测试文件并获取调用用户 WindowsIdentity.GetCurrent().Name 的安全上下文
  • 然后我在总是以拒绝访问结束的情况下使用上面的代码运行存储过程。

在我启用匿名访问(使用本文)之前,该包无法保存文件。

AFAIK 我们只启用了 MSSQLSvc kerberos 委派。

关闭:

问题是由 SSIS 目录的行为引起的,当从 TSQL 调用时,它会获取用户安全上下文,但为了正常工作,在访问网络共享时,您还需要为 CIFS 设置 Kerberos 委派。

我无法在我们的环境中执行此操作,因此我恢复为 xp_cmdshell。

感谢大家的支持。

0 投票
1 回答
1254 浏览

ssis - SQL Server 2016:使用 dtexec 从 cmd 行运行 DTS 包以从表导出到平面文件时出错

我有以下软件:

  • 微软 SQL 服务器 2016

  • Windows Server 2016 数据中心

  • SQL Server Management Studio v18.2 (SSMS)

运行服务:

我正在使用 SSMS 创建 SSIS 包以使用 SQL 将数据导出到平面文件

我立即运行包并将包保存到文件系统。

数据成功导出到平面文件。

但是,当我尝试使用 bash 脚本运行包时,

或者

我收到以下错误:

开始时间:晚上 7:46:55 错误:2019-08-30 19:46:56.07

代码:0xC0048020

来源:数据流任务 1 数据流任务 1 (SSIS.Pipeline)

说明:Destination - demo_dat 的版本与此版本的 DataFlow 不兼容。

结束错误

错误:2019-08-30 19:46:56.58

代码:0xC0048020

来源:数据流任务 1 SSIS.Pipeline

说明:Destination - demo_dat, clsid {44152846-E5A6-4EDB-8B8E-7072209A7662} 的版本与此版本的 DataFlow 不兼容。

结束错误

错误:2019-08-30 19:46:56.60

代码:0xC0048021

来源:数据流任务 1 目标 - demo_dat [2]

描述:组件丢失、未注册、不可升级或缺少必需的接口。此组件的联系信息是“平面文件目标;Microsoft Corporation;Microsoft SQL Server;(C) Microsoft Corporation;保留所有权利;http://www.microsoft.com/sql/support ;1 ”。

结束错误

错误:2019-08-30 19:46:56.60

代码:0xC0047017

来源:数据流任务 1 SSIS.Pipeline

说明:目的地 - demo_dat 验证失败并返回错误代码 0xC0048021。

结束错误

错误:2019-08-30 19:46:56.60

代码:0xC004700C

来源:数据流任务 1 SSIS.Pipeline