SQL Server 2019 - 作业 (SSIS) 失败并出现错误“系统找不到指定的文件”

问题描述 投票:0回答:2

我目前正在将数据库从旧的 SQL Server 2012 迁移到运行 SQL Server 2019 的新系统。除了数据库之外,我还迁移了多个 SQL Server 代理作业。 其中一项作业由多个不同的步骤组成,其中一个步骤仅运行 PowerShell 脚本,另外两个步骤作为 SSIS 包实现。当我执行作为 SSIS 包实现的步骤之一时,出现以下错误:

The process could not be created for step 2 of job <long hexadecimal number> (reason: The system cannot find the file specified). The step failed.

我该如何诊断这个错误?我不知道找不到哪个文件以及原因。有没有办法获得有关此错误的任何其他信息?我已经检查了SSIS包中涉及的所有文件,例如包文件本身、配置文件以及在执行该步骤期间访问的所有文件,但我找不到此错误的原因。 由于包是在新的 SQL Server 2019 而不是旧的 SQL Server 2012 中执行的,是否会存在兼容性问题?如果是这样,我如何检查是否确实如此?

提前非常感谢!

ssis sql-server-2012 package sql-server-agent sql-server-2019
2个回答
3
投票

有完全相同的问题。 找到了一个解决方法,不喜欢它,但它确实让包运行了。

将“类型”从“SQL Server 集成服务包”更改为“Transact-SQL 脚本 (T-SQL)”

使您的 SQL 语句类似于:

EXEC xp_cmdshell '""C:\Program Files\Microsoft SQL Server\150\DTS\Binn\DTExec.exe" /FILE "\"<Path To Package>\<PackageName>.dtsx\""  /WARNASERROR /X86  /CHECKPOINTING OFF  /REPORTING E'

请注意,命令

'""
的开头不是 type-o,
\""
包名称后面的
.dtsx
也不是。

不喜欢这个答案,但在正确的解决方案出现之前......它正在起作用。


0
投票

我们遇到了同样的异常,从作业步骤之一调用 PowerShell 脚本。事实证明,这是一个用双引号替换单引号的简单案例。

这个失败了:

'C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe' C:\Scripts\Deploy.ps1

用双引号替换单引号成功。

"C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" C:\Scripts\Deploy.ps1
© www.soinside.com 2019 - 2024. All rights reserved.