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

前 言在日常维护工作中,经常会遇到客户要求将标的数据库导出为TXT、CSV等文件。在数据量较少的情况下PL/SQL、toad、NavicatforORACLE等工具都可以满足要求,速度快而且方便。但这些工具并不适用于数据量大的情况,在不同的数据库版本,有不同的解决方案。

解决方案2.1 oracle版本为11g对于数据量大的情况我们一般使用SPOOL方式进行导出:

sqlplus -S username/password<<eof

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文件格式:

指定特殊分隔符:

「点点赞赏,手留余香」

赞赏

  • 0人赞过
0
0
0
评论 0 请文明上网,理性发言

相关文章

  • 前期准备: 一台windows10操作系统的电脑 Oracle11g安装包,sqldevleoper安装包 (百度网盘提取链接:https://pan.baidu.com/s/15FxijLNpTSbYn1CQdKnWqQ 提取码:eqjl,不想使用百度网盘的可以自行百度至官网下载) 安装Oracle解压缩文件后点击可
    全球影视Ozi5 5 0 0 条评论
  • 微酒论坛再度来袭!10月22日-10月25日,湖南?长沙秋季糖酒会我们不见不散! 秋糖论坛,要听就听权威的、专业的顶级论坛。 10月23日下午,长沙明城国际大酒店,酒业外脑、行业第一咨询公司--盛初咨询的最新研究成果"214模式"首次公开发布!还不够?再加上世界百强企业重磅大咖压阵如何? 最新内部消息,世界百强企业甲骨
    景景景景行- 6 0 0 条评论
  • 2014年6月10日,OracleCEO拉里·埃里森在总部宣布了一项突破性的创新技术:OracleDatabaseIn-Memory。和Multitenant一样,DatabaseIn-Memory是Oracle数据库12c版本中的一个全新选件,是继Exadata之后重要的数据库创新之一。今天,Oracle所倡导的融
    浪痰湍妆 9 0 0 条评论
  • 编辑|舞春秋 来源|至顶网 Oracle近日在美国拉斯维加斯举行的OracleCloudWorld大会上推出了一款用于支持本地云环境的基础设施平台,包括多个新的公有云服务、以及多项对数据库产品组合的重大更新。Oracle近日在美国拉斯维加斯举行的OracleCloudWorld大会上推出了一款用于支持本地云环境的基础
    勿畏1 7 1 0 条评论
  • 源/云头条一位Oracle程序员在HackerNews上吐槽自己的工作,引起了热议,内容如下: Oracle数据库12.2。它有近2500万行C代码。 这实在太恐怖了,简直难以想象!你做不到在不破坏成千上万个现有测试的情况下更改产品中的单单一行代码。好几代程序员在很紧的项目期限内编写了这些代码,代码中充斥着各种各样的
    风荡人间 4 0 0 条评论
  • 文|局长 出品|OSC开源社区(ID:oschina2013) DB-Engines数据库流行度排行榜发布了2月份的更新: 可以看到,TOP20的数据库中只有Snowflake的排名上升,从上个月的第17名上升至现在的第15名。分数更是比去年同期增加了64.96分。 至于三巨头--Oracle、MySQL和Micro
    竹子澀苜 5 1 0 条评论
  • DB-Engines发布了2018年1月份的数据库排名。排前20名的数据库中,Oracle稳居第一,Cassandra超过Redis,夺回第8的位置。第14名的Solr被第13名的SAPAdaptiveServer赶超,SQLite有小幅回升趋势。整体排名没有太大的变化。 完整排名请查看:https://db-en
    meiyit388 7 1 0 条评论
  • 编辑|田晓旭 Oracle中国区研发中心裁员消息最终被确认。 5月7日上午,Oracle召开了面向全中国区的电话会议,亚太区人力资源负责人在会上简要介绍道,公司正进行业务结构调整,导致一部分人要离开岗位,这将是全球性的。短暂介绍后,没有任何提问环节,Oracle北京地区便开始了一对一面谈,介绍赔偿内容。 据悉,此次主
    Jazery2009 7 0 0 条评论
  • 全球都在去Oracle化,曾经的纯软件巨头未来该何去何从? Oracle狠甩MySQL,涨幅大增 近日,DB-Engines最新发布了2018年8月数据库排名榜,Oracle稳居第一,同时是本月涨幅最大的数据库技术,涨幅高达34.24,狠甩第二名MySQL。 亚马逊:2020年第一季度,我们将完全弃用Oracle!
    土豆足球83 4 5 0 条评论
  • 作者|李冬梅 西方对俄罗斯的全面制裁,可能会加快中国在基础软件等"卡脖子"技术上自力更生的步伐。 1全球多家科技巨头宣布制裁俄罗斯 随着俄乌战争局势日益焦灼,西方各国相继宣布了要全面制裁俄罗斯的消息,美国更是将俄罗斯列入科技出口管制名单中。令人意外的是,俄乌战争影响范围之广,几乎波及了全球科技网。以谷歌、苹果、微软、
    xiao6663 7 0 0 条评论