ORACLE 导出TXT格式文件小结

本文介绍了在Oracle中使用SPool和UTL_FILE两种方式导出TXT格式文件的效率对比,以及如何设置导出文件的编码格式。在大数据量情况下,UTL_FILE的效率明显优于SPool。同时,文章提到了如何创建shell脚本和SQL文件以配合SPool导出,并讨论了Linux环境下的NLS_LANG设置和统计shell脚本运行时间的方法。
摘要由CSDN通过智能技术生成

后记:

用了100万的数据做了测试,发现spool的效率还是堪忧,要是数据量小的话用spool没什么问题,也比较简单,但是数据量稍微大一些就不行了。用spool导出100万条数据用时在2分钟左右,用UTL_FILE开游标来写得话只要40多秒。快了一倍。(生产用了5亿数据验证。速度不止一倍,所以,如果不是写日志,还是用游标来写吧)

以上导出来的是分隔符文件,如果想要定长文件(就是表中的字段长度是多少就导出多少,不够的补齐空格或者指定字符。)

那就需要用rpag和lpag-->一个是右补齐。一个是左补齐。

用法:rpad(nvl(v_rec.字段名,' '),字段长度,' ')

 

spool导出文件

最近有个任务,需要将库中数据导出给下游,然后看到别的开发人员用的都是游标PUTLINE之类的,之前看到有历史程序是用spool的,所以今天就用spool来导数了。

其实我觉得用spool还是很方便的,废话不多说,直接干。

需要两个文件,

export.sh       export_user.sql

因为是要把user表中的所有数据或者一些数据整合导出成一个文件,所以sql文件内容就是查询,将所有需要的数据查出来然后整合拼接成想要的样子。本次导数只是要求用‘^’符号作为分隔符,编码格式要求是utf8。

sql文件如下:

select id||'^'||name||'^'||a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值