资讯专栏INFORMATION COLUMN

Oracle各版本文本数据生成方案

IT那活儿 / 3236人阅读
Oracle各版本文本数据生成方案
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

前 言

在日常维护工作中,经常会遇到客户要求将标的数据库导出为TXT、CSV等文件。
在数据量较少的情况下PL/SQL、toad、NavicatforORACLE等工具都可以满足要求,速度快而且方便。

但这些工具并不适用于数据量大的情况,在不同的数据库版本,有不同的解决方案


解决方案

2.1 oracle版本为11g
对于数据量大的情况我们一般使用SPOOL方式进行导出:
sqlplus -S username/password<set linesize 2000 pages 0;
set numwidth 30;
set heading off ;
set feedback off ;
set timing off;
set trimspool on;
alter session set nls_date_format=yyyy-mm-dd hh24:mi:ss;
spool session.csv
set timming on;
SELECT "||machine||","||program||","||port||","||process||","||username||" from dbauser.session_01;
spool off
eof
除此之外也可以使用sqluldr2,该工具可快速将数据导出为TXT、CSV格式,支持并行导出、多种分隔符、自动拆分文件、通配符。需要额外下载安装。
导出格式:
sqluldr2 scott/tiger query="scott.emp"  head=yes 
file=emp%b.csv log= emp.log charset=UTF8 head=no batch=yes size=100

常用参数:

  • user  = username/password@tnsname 用户名、密码;
  • query   = select statement 选择语句(可直接写表名、查询运算语句、sql文本);
  • sql   = SQL file name  sql语句文件(sql语句复杂时写入文本,由query调用);
  • field = separator string between fields (分隔符,默认逗号分隔);
  • file  = output file name (导出文件名);
  • log   = log file name, prefix with + to append mode(日志文件);
  • charset = character set name of the target database(字符集);
  • size (最大输出文件大小mb,按大小拆分文件);
  • rows(按输出行数拆分文件)。
示 例:
导出dbauser.session_01表按100MB每个文件进行拆分。
sqluldr2 dbauser/dba_2014 query="dbauser.session_01"  
file=/dumpbak01/oracledmp/session_%b.CSV charset=UTF8
head=yes  batch=yes size=100
使用spool导出和sqluldr2导出,生成的文件大小基本一致,但sqluldr2只用30秒,spool使用了2分31秒,sqluldr2效率是spool的5倍以上。
相比spool,sqluldr2在使用上更为便捷,功能也更为全面,效率也更高,因此在11g版本建议使用sqluldr2来导出TXT、CSV文件。

2.2 oracle版本为12.2以上

oracle提供了新的功能导出CSV文件,在会话中设置set markup csv on即可生成CSV文件。在oracle版本为12.2以上时,使用set markup csv on可以更为便捷的导出CSV文件。
标准语法为:
SET MARK(UP) CSV {ON/OFF} [DELIMI[TER] character] [QUOTE {ON/OFF}]
官方文档说明如下:
默认生成CSV格式,也可指定分隔符。
生成CSV文件格式:
指定特殊分隔符:


本文作者袁 钢(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129126.html

相关文章

  • 开源|性能优化利器:数据库审核平台Themis的选型与实践

    摘要:正是存在问题,促使我们考虑引入数据库审核平台。的确,与很多互联网公司相比,数据库数十套的估摸并不是太大但与互联网类公司不同,类似宜信这类金融类公司对数据库的依赖性更大,大量的应用是重数据库类的,且其使用复杂程度也远比互联网类的复杂。 作者:韩锋 出处:DBAplus社群分享 Themis开源地址:https://github.com/CreditEaseDBA 拓展阅读:宜信开源|数...

    wenhai.he 评论0 收藏0
  • Hadoop HA集群 与 开发环境部署

    摘要:伪分布模式在单节点上同时启动等个进程,模拟分布式运行的各个节点。完全分布式模式正常的集群,由多个各司其职的节点构成。在之前在集群中存在单点故障。正确的下载链接会有,这个就是公司需要用户在下载时提供的注册信息。每一次 Hadoop 生态的更新都是如此令人激动像是 hadoop3x 精简了内核,spark3 在调用 R 语言的 UDF 方面,速度提升了 40 倍所以该文章肯定得配备上最新的生态h...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<