ITPub博客

首页 > 数据库 > Oracle > 开始学习pro*C

开始学习pro*C

原创 Oracle 作者:GeneralBoy 时间:2009-07-20 10:18:46 0 删除 编辑

前一阵公司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博客 ” ,链接:https://blog.itpub.net/22134244/viewspace-1024294/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-17

  • 博文量
    2
  • 访问量
    4282