几天以前, 有个朋友告诉我某单位的Oracle数据库坏了, 需要恢复, 很想推荐人家用AUL的, 不过客户自已只信任Oracle的, 并且Oracle已经介入了. 于是我就笑着说, Oracle DUL不行时再来用AUL吧.
其实也只是随便说说而已, 没想到昨天再接到那朋友的电话, 说是Oracle DUL恢复遇到了问题, 客户有CLOB列中存放了很多中文, 用DUL恢复出来后, 这些字段值都成了乱码. 形成这个乱码原因当然是由于Oracle CLOB列的特殊性, 以及DUL作者不是中国人, 所以没有考虑到CLOB中的中文情况. 来咨询AUL是否可以处理这些乱码, 我欣然说可以.
客户马上联系我, 下载AUL, 在我的指导下很快就恢复了第一张表, CLOB中的中文内容没有大问题, 却有些小问题, 某些地方总是多了一些问号, 这个问题最好可以完美解决. 形成这个问题的原因是, AUL中只支持了GB2312字符集中的常用汉字以及中文符号, 现在大家都用支持更多中文字和中文符号的GBK字符集了, 因此有些不在GB2312字符集中的汉字或符号在转换时就成了问号, 这就是问号的来源.
要解决这个问题, 就要更改AUL程序, 以支持GBK字符集, 在参考了iconv项目的源代码, 花了大约四个多小时后, 终于将GBK支持加到AUL中, 在笔记本上的Oracle 10g数据中测试了CLOB的中文后, 就投给客户试用了. 还好没有白费这几个小时的苦心研究, 再恢复出来的CLOB值中问号没有了.
AUL很多次都是在遇到问题后, 立马进行修改, 一年一年变得更完善. 如果用DUL时遇到了CLOB的乱码问题, 请联系AUL吧.
总之Oracle DUL搞不定的, AUL可以搞定, 因为它可以随时修善改进.