DTExec 找不到文件

DTExec not finding file

我创建了一个包,它被加载到我们的 SQL 服务器上。该包进入一个文件夹,读取并 excel,将 excel 转储到 table,然后将其存档。

当 运行 正常安装包时(通过 BIDS)它工作得很好。

但是当我 运行 它通过 SSMS 使用以下行时:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"0\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

提取 Excel 名称的部分(对于包中的每个循环)报告它没有找到任何东西。

   Description: The For Each File enumerator is empty. The For Each File enumerator did not find any files that matched the file pattern, or the specified directory was empty.

包需要在 32 位模式下 运行 才能读取 excel,这就是我使用 32 位 dtexec 位置的原因。

有人知道怎么回事吗?

我认为你应该使用 create SSIS Type Job 并更改:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"0\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

与:

EXEC dbo.sp_start_job 'job_name';

我还会检查你执行cmd时使用的帐户shell。我怀疑没有足够的权限来读取特定目录或不同的环境变量。