SQLULDR2也许是我所有工具中被使用最广泛的,因此也是最成熟的,上一次修改需求是在一年多以前,为MySQL的Insert语句导出功能增加Hex函数支持。不过用户的需求是无止境的,有网友要求增加一个安全保密功能,对导出的数据内容进行简单的加密操作,我觉得是合理的功能,就快速实现了。
只需要在导出时加上"crack"选项,指定加密的KEY就可以了,不管生成的是格式化文本,还是Insert语句,所有内容都被加密了。E:>sqluldr2 user=dict/ali88@tooldb query=tab file=a.dat crack=anysql
0 rows exported at 2013-01-14 16:28:06, size 0 MB.
128 rows exported at 2013-01-14 16:28:06, size 0 MB.
output file a.dat closed at 128 rows, size 0 MB.
同样SQLULDR2也提供了解密功能,同样需要用"uncrack"选项来指定解密的KEY,以及用"file"选项来指定要解密的文件(可以接受标准输入),解密后的内容写出到标准输出设备。E:>sqluldr2 uncrack=anysql file=a.dat
TASK_INFO,TABLE,
ALI_SQLFILE,TABLE,
ALI_SQLSTATEMENT,TABLE,
TRANS_TMP_1,TABLE,
TRANS_TMP_2,TABLE,
......
如果要接受标准输入来进行解释,则指定"file"选项的值为"-"就可以。E:>type a.dat | sqluldr2 uncrack=anysql file=-
TASK_INFO,TABLE,
ALI_SQLFILE,TABLE,
ALI_SQLSTATEMENT,TABLE,
TRANS_TMP_1,TABLE,
TRANS_TMP_2,TABLE,
......
加密功能本身的逻辑比较简单,并且会影响性能,希望不是在巨量数据导出中使用。