引言

在项目中,我们经常会遇到数据的卸载、装载需求。

卸载就是需要将数据从数据库中导入到文本文件中的需求,这样的方法有很多,比较常用的就是spool命令。

装载就是需要将数据从文本文件中导入到数据库中。方法也有很多,常用的方法为:sqlldr。关于sqlldr,详见博客:《数据装载--sqlldr的使用》

下面介绍下spool的使用。

一、示例:

spool:是sqlplus的命令。它允许你把一句或者多句sql语句输出保存为文件格式。

SQL> spool d:\test1.txt

SQL> select userid,username,email from test;

SQL> spool off

查看文件test1.txt,数据导入文件成功。如果在spool后面的输出文件名那一栏不指定路径的话,默认在登陆用户的home目录下。

二、spool的语法格式:

spool { file_name[.ext] [create|replace|append]| off | out }

file_name:指定输出的文件名。默认的文件扩展名是.lst。

create:创建一个新的文件。

replace:默认使用该项.覆盖原有文件中的内容,如果原文件不存在则,新建一个输出文件。

append:把输出内容追加到指定的文件中。

off:停止输出。

out:停止输出,并发送到默认的打印机,该命令在有些操作系统上面不可用。

三、spool设置

示例一只是非常简单的使用了spool命令,但是对于sql的格式和输出文件的格式,最好自己定义好,否则出错概率非常大。

spool常用的设置

set colsep' ';    //域输出分隔符

set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on

set feedback off;  //回显本次sql命令处理的记录条数,缺省为on

set heading off;   //输出域标题,缺省为on

set pagesize 0;   //输出每页行数,缺省为24,为了避免分页,可设定为0。

set termout off;   //显示脚本中的命令的执行结果,缺省为on

set trimout on;   //去除标准输出每行的拖尾空格,缺省为off

set trimspool on;  //去除重定向(spool)输出每行的拖尾空格,缺省为off

导出文本数据的建议格式:

SQL*PLUS环境设置

SET NEWPAGE NONE

SET HEADING OFF

SET SPACE 0

SET PAGESIZE 0

SET TRIMOUT ON

SET TRIMSPOOL ON

SET LINESIZE 2500

对于字段内包含很多回车换行符的应该给与过滤,形成比较规矩的文本文件。通常情况下,我们使用如下:

set trimspool on

set linesize 120

set pagesize 2000

set newpage 1

set heading off

set term off

spool 路径+文件名

select col1||','||col2||','||col3||','||col4||'..' from tablename;

spool off

示例一优化为:

SQL> set trimspool on

SQL> set linesize 120

SQL> set pagesize 2000

SQL> set newpage 1

SQL> set term off

SQL> spool d:\test2.txt

SQL> select userid||','||username||','||email||',,' from test;

SQL> spool off

查看test2.txt为:

SQL> select userid||','||username||','||email||',,' from test;

USERID||','||USERNAME||','||EMAIL||',,'

------------------------------------------------------------------------------------------------------------------------

a001,zhangsan,zhangsan@163.com,,

a002,lisi,lisi@163.com,,

a003,wangwu,wangwu@163.com,,

SQL> spool off



oracle中spool卸数,数据卸载--spool的使用相关推荐

  1. oracle模块损坏,Oracle中模拟及修复数据块损坏

    Oracle中模拟及修复数据块损坏,itpub link: http://www.itpub.net/showthread.php?threadid=201766[@more@]Oracle中模拟及修 ...

  2. oracle中插入日期型数据,ORACLE插入日期数据

    ORACLE插入日期数据 oracle数据库插入日期型数据 往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ...

  3. Oracle中如何删除重复数据

    我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一. ...

  4. oracle查询多张表交集,Oracle中对两个数据表交集的查询-专栏,ORACLE

    oracle关系型管理系统是世界上流行的关系,它是一个极其强悍.灵活和复杂的系统,据说,在使用oracle时应有这样的观念,那就是在sql中近乎可以推动任何一种想法. 下面向你们介绍使用sql查两个o ...

  5. oracle中删除表的步骤,Oracle中删除表,删除数据以及恢复数据

    1.删除表中数据两种方法 a. delete * from My_Table; b. truncate table My_Table; 2.删除整个表 drop table My_Table; 如何恢 ...

  6. oracle中spool卸数,Oracle中如何快速的卸载和加载数据?

    前几天有个朋友在MSN上问,如何能更快速的从数据库中卸载和加载数据,他原来是用sql查询spool出来,效率很低. 这让我想起DCBA的一个工具ociuldr,这个工具是用C写成的,通过OCI和数据库 ...

  7. oracle 数据 时间间隔,如何掌握 Oracle 中的时间间隔型数据

    在9i 版本以前,oracle 没有内置的方式来记录时间的流逝.date型数据用来记录单独的时间点:但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个n ...

  8. 恢复oracle中误删除delete的数据、drop掉的表

    oracle误删除数据的恢复方法 学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答 ...

  9. oracle时间间隔分钟数,如何掌握Oracle 中的时间间隔型数据

    在9i 版本以前,Oracle 没有内置的方式来记录时间的流逝.DATE型数据用来记录单独的时间点:但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个N ...

最新文章

  1. python小项目案例-拯救Python新手的几个项目实战
  2. 03-身体部位-BodyParts(English)
  3. [转]Google 发现的十大真理
  4. matlab手眼标定
  5. 微信H5开发问题集锦
  6. 阴阳师服务器维护3月25日,阴阳师3月25日更新内容-阴阳师3月25日更新内容介绍_牛游戏网...
  7. element-ui el-upload框去除‘按 delete 键可删除’提示
  8. 华为5G,不服不行!
  9. 99%健身人士的疑问:营养补充窗口真的很重要吗?
  10. 初识计算机网络||概述
  11. Ubuntu下GNOME桌面美化
  12. VF控制和矢量控制的一些区别
  13. 未来办公利器-无影云超级桌面体验
  14. 微服务时代之2017年五军之战
  15. OPPO手机生日倒计时天数怎么在便签中设置?
  16. 2017年12月。。
  17. 液晶显示屏LCD1602
  18. Defaulting to no-operation (NOP) logger implementation
  19. 【攻破css系列——第九天】常规流
  20. linux系添加路由,Linux添加路由的两种方法

热门文章

  1. 【linux性能优化】软中断的理解及问题定位
  2. 用js javascript 创建网页快捷方式
  3. CSS3 SVG实现可爱的动物哈士奇和狐狸动画
  4. AutoLeaders控制组—51单片机学习笔记(LED控制、独立按键、数码管)
  5. html+css取消下划线
  6. python mro c3_绝地求生辅助_Python的多继续问题-MRO和C3算法
  7. c语言1e5是什么类型,c语言基础知识
  8. 从零开始的Python学习初级篇(5)列表丶元组丶字典及其常规操作
  9. 从移动到桌面—ARM挑战X86
  10. Python采集12星座信息,分析出12星座的各个特点