1

是否可以从 SQL 脚本调用 7-zip?基本上我将表格提取到 csv,然后将它们打包成 7z 文件。我已经在安装 SQL Server 的机器上安装了 7-zip 并将其添加到路径中,但这似乎还不够。

当我尝试使用 xp_cmdshell 运行脚本时出现以下错误

'7z' is not recognized as an internal or external command,
operable program or batch file.

这是代码,我已经声明了变量

declare @archiveCommand nvarchar(max)
declare @filename nvarchar(max)

set @archiveCommand = '7z a '+@filename+'.7z '+@filename+' '
print @archiveCommand
EXEC master..xp_cmdshell @archiveCommand
4

2 回答 2

4

我不知道这现在是否有帮助,但我遇到了这个问题并通过使用文件名调用 7z 应用程序来解决它。

所以而不是:

set @archiveCommand = '7z a '+@filename+'.7z '+@filename+' '

你会想要:

set @archiveCommand = '"C:\Program Files\7-zip\7z" a '+@filename+'.7z '+@filename+' '

于 2011-04-04T11:34:20.287 回答
2

有可能,是的,但可能是个坏主意:权限通常是一个问题(正如您已经发现的那样),路径和工作目录会让您感到困惑,并且在 SQL 中构建 shell 命令是一个全面的痛苦。仅使用外部脚本并从计划的作业或 SSIS 包中运行它会容易得多。

如果您明确说明为什么以及何时要从 SQL 运行脚本,那么有人可能会提出更好的方法。例如,我使用 SSIS 和 Python 做同样的事情。

于 2010-09-14T14:54:04.473 回答