首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL脚本运行7-zip

从SQL脚本运行7-zip
EN

Stack Overflow用户
提问于 2010-09-14 22:43:22
回答 2查看 9.1K关注 0票数 1

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

当我尝试使用xp_cmdshell运行脚本时,我得到了以下错误

代码语言:javascript
复制
'7z' is not recognized as an internal or external command,
operable program or batch file.

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

代码语言:javascript
复制
declare @archiveCommand nvarchar(max)
declare @filename nvarchar(max)

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-14 22:54:04

这是可能的,是的,但可能是一个坏主意:权限通常是一个问题(正如您已经发现的),路径和工作目录会让您陷入困境,并且在SQL中构建shell命令是一件很痛苦的事情。只需使用外部脚本,并从计划的作业或SSIS包中运行它,就会容易得多。

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

票数 2
EN

Stack Overflow用户

发布于 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+' '

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3709988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档