开始学习pro*C

前一阵公司CDM软件的短信模块要改善数据导出速度,简单的说就是给出一个sql查询并将这个查询的结果导出到客户端机器的磁盘上.

说到这个功能我第一个想到的就是plsql developer自带的文本导出功能.虽然功能上完全满足,不过由于短信业务的数据需求特别大,50W数据导出的情况也经常发生,显然plsql developer文本导出速度是个瓶颈,50W大约5~10分钟左右.

网上查了下,无非两种办法一种是spool,另外一种是利用Utl_file包.spool的速度和plsql developer相比没有什么优势故不考虑.Utl_file包速度倒是不错,50W导出成csv也就1分钟吧,可是偏偏有个硬伤,导出的文件只能是在服务器的硬盘.如果是这样还得花时间把数据从服务器转移到客户端,显然安全性也是个问题.

没办法继续google,baidu.突然有一篇文件的名字吸引了我 "Pro*C实现导出Oracle表为文本文件",迫不及待的打开查看.原来是某个作者也遇到和我一样的情况,不过他似乎幸运点,求助了Tom,Tom给了他一段pro*C的实现源码,轻松搞定.速度快到30分钟导出7GB.NND居然这么快.可惜本人pro*C菜鸟水平,写这么个东西实在耗时.等以后慢慢研究.

再次google,整整找了3个小时,依然无果,就在我要绝望的时候,幸运女神再次眷顾了我.搜到了一个叫ociuldr的软件,仔细看了下介绍发现原来还有个升级版本 sqluldr,是个控制台程序,下载使用了下,哇! 超级强大,50W数据导出7秒.而且可以设置的属性也比较丰富,瞅了下软件作者名字.居然是anysql,itpub名是d.b.c.a.牛人就是牛人,赶紧Orz.用了别人的东西当然也得给别人广告下:http://www.anysql.net/product 这个是他的产品中心,多数都是免费使用的,确实不错.

折腾了那么久终于有了收获,立刻将sqluldr集成到CDM软件测试了下.效果相当好,10W以下的数据眨下眼睛就出来了.哈哈,连进度条都不用做了.

通过这次的经历,也让我渐渐对oci和pro*C编程产生了浓厚的兴趣. 继续学吧,前面的路还很长...

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22134244/viewspace-1024294/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22134244/viewspace-1024294/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值