使用Windows 命令行压缩程序 Winrar,在SQL存储过程中压缩Excel文件
2012-08-29 11:51
621 查看
使用Windows 命令行压缩程序 Winrar,在SQL存储过程中压缩Excel文件。
Winrar 压缩解压软件几乎人人都会用,但是对于搞程序开发的朋友来说, 命令行压缩解压有时候更有用。这不,最近有个需求是这样的: 利用 SQL Server 存储过程检查数据库中的错误数据, 并把这些错误数据导入 Excel 格式数据文件, 然后通过 DB Email 发给用户。可惜的是,Excel 数据文件太大,有 20 MB 左右,邮件发送不了。
这时候就需要在 SQL 存储过程中实现自动压缩 Excel 文件的功能。如何实现呢?我们知道 SQL Server 中还没有内置这样的压缩解压 功能,唯一的办法就是使用 xp_cmdshell 来调用外部程序来实现了。 外部压缩程序?哦,首先想到的是 Winrar,这个比较常用。 我想,Winrar 或许可以在 Windows 命令行下运行,于是就找到 Winrar 的帮助 文档翻了翻。突然眼前一亮,果然能在 Windows 命令行下运行。 下面介绍 Winrar 在命令行下的简单用法。
需要注意的是,Winrar.exe 默认情况下没有加入到 Windows 环境变量“path” 中, 所以在Windows 命令下执行不了。可以进入Winrar.exe 所在目录执行 Winrar。 或者直接加入到“path” 中,这样就可以在命令行直接执行。
Winrar 命令行语法(压缩):
1. 压缩 d:\a.txt,并保存为 c:\a.rar
2. 压缩 d:\a.txt, d:\b.txt, d:\c.txt,并保存为 c:\sqlstudy.rar
3. 最大程度地压缩 d:\a.txt,并保存为 c:\a.rar
4. 设定压缩程度,需要使用 switch: Mn。n(0~5)。0 不压缩,5 最大程度压缩。
5. 压缩 d:\下的所有.sql 文件,并保存为 c:\a.rar
6. 压缩 d:\filelist.txt 中列出的文件,并保存为 c:\a.rar
7. 其中,d:\filelist.txt 文件内容为:
8. 压缩 d:\a.txt,并保存为 c:\a.rar,另外压缩后删除源文件 d:\a.txt
9. 压缩 d:\test\*.*,并保存为 c:\a.rar,另外在归档文件中不包含文件路径信息。
10. SQL 调用 Winrar 命令行,压缩 d:\a.txt,并保存为 c:\a.rar
注意:因为 program files 文件夹名字中间有个空格,所以要在 c:\program files\winrar.exe 前后加上双引号。否则 SQL Server 找不到 Winrar.exe。
Winrar 压缩解压软件几乎人人都会用,但是对于搞程序开发的朋友来说, 命令行压缩解压有时候更有用。这不,最近有个需求是这样的: 利用 SQL Server 存储过程检查数据库中的错误数据, 并把这些错误数据导入 Excel 格式数据文件, 然后通过 DB Email 发给用户。可惜的是,Excel 数据文件太大,有 20 MB 左右,邮件发送不了。
这时候就需要在 SQL 存储过程中实现自动压缩 Excel 文件的功能。如何实现呢?我们知道 SQL Server 中还没有内置这样的压缩解压 功能,唯一的办法就是使用 xp_cmdshell 来调用外部程序来实现了。 外部压缩程序?哦,首先想到的是 Winrar,这个比较常用。 我想,Winrar 或许可以在 Windows 命令行下运行,于是就找到 Winrar 的帮助 文档翻了翻。突然眼前一亮,果然能在 Windows 命令行下运行。 下面介绍 Winrar 在命令行下的简单用法。
需要注意的是,Winrar.exe 默认情况下没有加入到 Windows 环境变量“path” 中, 所以在Windows 命令下执行不了。可以进入Winrar.exe 所在目录执行 Winrar。 或者直接加入到“path” 中,这样就可以在命令行直接执行。
Winrar 命令行语法:
WinRAR command -switch1 -switchN archive files... @listfiles... path_to_extract
command : 命令。常用的有压缩(a);解压缩(e 或者 x) switch : 直译为“开关”。我理解为“附加参数”。需要在每个“附加参数”前面加“-” archive : 归档文件。 files : 需要被压缩的文件。可以有多个。 listfiles : 存放需要被压缩的文件列表的文件。文件名前加@,以区别于被压缩文件。 path_to_extract : 解压缩路径。
Winrar 命令行语法(压缩):
Winrar command -switch... archive files...
1. 压缩 d:\a.txt,并保存为 c:\a.rar
winrar.exe a c:\a.rar d:\a.txt
2. 压缩 d:\a.txt, d:\b.txt, d:\c.txt,并保存为 c:\sqlstudy.rar
winrar.exe a c:\sqlstudy.rar d:\a.txt d:\b.txt d:\c.txt
3. 最大程度地压缩 d:\a.txt,并保存为 c:\a.rar
winrar.exe a -M5 c:\a.rar d:\a.txt
4. 设定压缩程度,需要使用 switch: Mn。n(0~5)。0 不压缩,5 最大程度压缩。
-M0 Store Add files to archive without compression -M1 Fastest Fastest method (least compressive) -M2 Fast Fast compression method -M3 Normal Normal (default) compression method -M4 Good Good compression method (more compressive) -M5 Best Best compression method (most compressive but also most slow)
5. 压缩 d:\下的所有.sql 文件,并保存为 c:\a.rar
winrar.exe a c:\a.rar d:\*.sql
6. 压缩 d:\filelist.txt 中列出的文件,并保存为 c:\a.rar
winrar.exe a c:\a.rar @d:\filelist.txt
7. 其中,d:\filelist.txt 文件内容为:
d:\a.txt d:\b.txt d:\c.txt d:\*.sql d:\test\*.*
8. 压缩 d:\a.txt,并保存为 c:\a.rar,另外压缩后删除源文件 d:\a.txt
winrar.exe a -DF c:\a.rar d:\a.txt
9. 压缩 d:\test\*.*,并保存为 c:\a.rar,另外在归档文件中不包含文件路径信息。
winrar.exe a -EP c:\a.rar d:\a.txt
10. SQL 调用 Winrar 命令行,压缩 d:\a.txt,并保存为 c:\a.rar
exec xp_cmdshell '"c:\program files\winrar.exe" a c:\a.rar d:\a.txt'
注意:因为 program files 文件夹名字中间有个空格,所以要在 c:\program files\winrar.exe 前后加上双引号。否则 SQL Server 找不到 Winrar.exe。
相关文章推荐
- ASP程序与SQL存储过程结合使用详解
- ASP程序与SQL存储过程结合使用详解
- ASP程序与SQL存储过程结合使用详解
- CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)
- SQL 2005-2008 存储过程分页程序 ROW_NUMBER()
- nutch2.1在windows平台上使用eclipsedebug 存储在mysql的搭建过程
- 利用SQL存储过程生成程序编号的一种方法(转)
- Winrar中命令行程序rar的使用
- 使用管道重定向方法获取windows下命令行执行程序结果
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
- PL/SQL Developer使用技巧、快捷键、存储过程调试
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- SQL IF..ELSE..在存储过程的使用规范
- SQL IF..ELSE..在存储过程的使用规范
- SQL 系统存储过程的使用
- SQL 2005对使用with encryption加密的存储过程解密(转)
- 使用oracle 的 PL/Sql 定时执行一个存储过程
- 自定义分页控件UI,从Discuz截取,配合SQL自定义分页存储过程一起使用
- 在 DB2 SQL 存储过程中使用 XML
- SQL 存储过程创建与使用