可以从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发布于 2010-09-14 22:54:04
这是可能的,是的,但可能是一个坏主意:权限通常是一个问题(正如您已经发现的),路径和工作目录会让您陷入困境,并且在SQL中构建shell命令是一件很痛苦的事情。只需使用外部脚本,并从计划的作业或SSIS包中运行它,就会容易得多。
如果您明确了为什么以及何时想要从SQL运行脚本,那么有人可能会提出一个更好的方法。例如,我使用SSIS和Python做了完全相同的事情。
发布于 2011-04-04 19:34:20
我不知道这是否会有帮助,但我遇到了这个问题,并通过调用文件名为7z的应用程序解决了这个问题。
因此,不是:
set @archiveCommand = '7z a '+@filename+'.7z '+@filename+' '
你会想要:
set @archiveCommand = '"C:\Program Files\7-zip\7z" a '+@filename+'.7z '+@filename+' '
https://stackoverflow.com/questions/3709988
复制相似问题