Oracle大规模数据快速导出文本文件
哈喽,前几久,和大家分享过如何把文本数据快速导入数据库(点击即可打开),今天再和大家分享一个小技能,将Oracle数据库中的数据按照指定分割符、指定字段导出至文本文件。
首先来张图,看看导出的数据是什么样子。

用到的就是Oracle的spool命令,可以将数据库数据导出一个文本文件,而且也可以指定数据分隔符,其中!^是数据之间的分隔符。
首先和大家分享一下,我的这个脚本是怎么写的,其中写select时,需要导出那些字段,直接写在select里面就可以了,此外,我也是在select里面指定了分割符!^。虽然可以用参数来指定分隔符,但用起来并不友好,结束时,我会演示的。
set echo off
set heading off
set feedback off
set termout on
set trimspool off
spool /home/oracle/Desktop/studentinfoSpool.dat --指定导出数据保存的文本文件
select stuid||'!^'||stuname||'!^'||sex||'!^'||age from studentinfo;
spool off
exit
一个不超过10行的SQL脚本,设置四五个参数,一个select语句,就可以搞定导数这个问题,是不是,很简单。
接下来对几个常用的参数进行解释一下。
参数 作用
set echo off 显示start启动脚本中的每个sql命令,默认为on。比如select语句
set pagesize 0 设置每页的行数,默认为24,设置为0时为不用分页,一般需要分页
set termout off 在电脑屏幕显示脚本中的命令执行结果,默认为on。
set feedback off 显示本次sql命令处理的记录数,默认为on。
set heading off 输出域标题,默认为on
set trimspool off 去字段空格
set linesize 50 每行允许的最大字符数,设置大些,如果太小,数据库会报错或者数据自动换行,但如果设置过大,文件也会变大
set colsep ‘!^’; 用来设置分割符,但不建议使用是参数,建议 手动写分割符
执行sql脚本
sqlplus c##orcl/1234 @/home/oracle/Desktop/studentinfoSpool.sql
说明:c##orcl是用户名,1234是密码,@后面是我们写的sql脚本,里面就是刚刚演示的SQL脚本。因为是本地数据库,所以没有写地址和端口等。
spool命令就是这么简单,但也有几个需要注意的地方。
注意事项:
1、不建议使用colsep 设置分割符。
可以把手动设置分隔符和使用colsep设置的结果对比一下。

可以看到,使用colsep 设置分隔符的数据中间会出现很多空格,而手动设置的分隔符就很好。此外,如果最后一个字段后面也需要分割符,colsep 参数就无能为力。
2、合理设置linesize
linesize 设置如果不当,会出现很多问题,如果太小,数据库可能会错,数据自动换行。太大的话,数据文件也会更大。

原文链接:https://blog.csdn.net/wzgl__wh/article/details/102887557
Oracle大规模数据快速导出文本文件的更多相关文章
- 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...
- oracle数据库数据导入导出步骤(入门)
oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...
- Oracle AWR 数据导入/导出的步骤
LINUX状态下,连接oracle用户:su - oracle 1.上传采集快照.dmp文件至服务器 (dbid:4292035712) 919219826 2.在服务器端创建目录 (即文件夹a ...
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...
- Oracle RAC数据泵导出问题处理
1. 设置导出文件路径 sqlplus / as sysdba SQL> alter session set container=spdb1pdb; SQL> create directo ...
- 大量数据快速导出的解决方案-Kettle
1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi.使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量 ...
- Oracle导入数据无法导出空表的问题
Oracle 11G在用export导出时,空表不能导出,11G R2中有个新特性,当表无数据时,不分配segment,以节省空间. 那么我们应该如何导出空表: 利用如下语句生成alter语句,未每个 ...
- Oracle odi 数据表导出到文件
最近新客户要求,以EXCEL数据方式,将数据表的内容,通过AS2协议传输到客户那边,本来打算使用存储过程直接输出EXCEL,但一想,ODI这么强大的工具应该可以直接进行转换,所以参考了一下官方标准文档 ...
- Oracle expdp数据泵导出,并在文件上附加上日期格式
一.导出操作的计算机要安装Oracle Client(建议管理员版本) 二.在服务端创建目录 create directory dpdir as '目录'; 三.给目录赋权限 grant read,w ...
随机推荐
- 基于Docker搭建大数据集群(五)Mlsql部署
主要内容 mlsql部署 前提 zookeeper正常使用 spark正常使用 hadoop正常使用 安装包 微云下载 | tar包目录下 mlsql-cluster-2.4_2.11-1.4.0.t ...
- Hadoop源代码点滴-基础概念
大数据特征:volume(数量).variety(多样性).velocity(产生的速度) 大数据特征:多.乱.快.杂 数据的来源:业务数据.日志.管理文档(OCR).互联网.物联网.外购
- Zeppelin 学习笔记之 Zeppelin安装和elasticsearch整合
Zeppelin安装: Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化.背后可以接入不同的数据处理引擎,包括spark, hive, taj ...
- (7)Cmake的使用简介
CMake是一个跨平台的安装(编译)工具,是一个比Make更高级的的编译配置工具,可以根据不同平台.不同编译器,通过编写CmakeLists,可以控制生成的Makefile,从而控制编译过程. ...
- 【JavaScript】 控制自适应高度
<iframe src="需要连接的iframe地址" id="iframepage" name="iframepage" frame ...
- Tomcat7.0.40注册到服务启动报错error Code 1 +connector attribute sslcertificateFile must be defined when using ssl with apr
Tomcat7.0.40 注册到服务启动遇到以下几个问题: 1.启动报错errorCode1 查看日志如下图: 解决办法: 这个是因为我的jdk版本问题,因为电脑是64位,安装的jdk是32位的所以会 ...
- python编程基础之三十六
文件处理:文件处理包括读文件,写文件 读文件: 1.打开文件 2.读取文件 3.关闭文件 写文件: 1.打开文件 2.写如文件 3.关闭文件 无论是读取文件还是写文件都时需要打开文件,和关闭文件 打开 ...
- e课表项目第二次冲刺周期第二天
昨天干了什么? 昨天与我们小组的成员商量了一个重大的决定,确定了我们转型发展的主题,简要的设计了我们软件要实现的功能,并且完成了首导航栏的设计,和一部分框架的内容填充. 今天干了什么? 我们组今天通过 ...
- 对象模型(Object-Model):关于vptr、vtbl
当一个类本身定义了虚函数,或其父类有虚函数时,为了支持多态机制,编译器将为该类添加一个虚函数指针(vptr).虚函数指针一般都放在对象内存布局的第一个位置上,这是为了保证在多层继承或多重继承的情况下能 ...
- CS184.1X 计算机图形学导论 第3讲L3V1
二维空间的变换 L3V1这一课主要讲了二维空间的变换,包括平移.错切和旋转. 缩放 缩放矩阵 使用矩阵的乘法来完成缩放 缩放矩阵是一个对角矩阵,对角线上的值对应缩放倍数 错切(shear) 错切可以将 ...