(MEMO:利用spool缓冲池技术)

具体步骤如下:

1、在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件路径和文件名

spool d:\output.txt

2、在命令中输入相应的SQL查询命令

select * from customer;

...

3、在命令行中输入缓冲结果命令

spool off;

系统将缓冲池的结果输出到“output.txt”中,并以TAB分隔。

保存SQL*Plus输出到文本文件或Excel文件

一、问题描述

有时需要将输出结果保存在文件中,那么,怎样将结果直接保存在文件中?

问题分析

如果要将查询结果应用到文件中,或经过编辑后再重新使用时,则需要将查询结果保存在一个文件中。在保存的同时,仍然能使查询结果在SQL*Plus窗口中显示。为此,只需要在SQL*Plus的命令窗口中,使用命令spool即可,命令格式如下:

spool

其中,file_name是要保存输出结果的文件名,如果没有指定文件名的后缀,则系统自动将其后缀指定为.lst或.lis。文件默认的路径与SQL*Plus在同一个路径之下,也可任意指定到其他路径。若查询完毕,则关闭文件。格式为:spool off。

问题解答

具体步骤如下。

步骤1:进行环境变量的设置。例如,执行下列SET命令:

set echo off

set feedback off

set verify off

set heading off

set pagesize 0

spool off

sqlplus中的 set pagesize n 命令用来设置页的高度为n行。如果n为0,则页的高度不受限制。该命令用来生成更易读的结果。

步骤2:创建用于保存输出的平面文件。

spool

例如:spool d:\spool.txt

这样,SQL*Plus将把所有的输出以及在屏幕上的命令等都指定给该文件。

步骤3:执行查询输出。此时,系统并没有把结果保存到文件中,而是保存到缓冲区中。

步骤4:查询结束后,关闭文件即可。命令格式为:spool off。

此时,系统才真正把所有输出结果保存到文件中。

以上方法适用于MS-DOS环境下的SQL*Plus。在Sqlplusw.exe中,使用“文件”→“使用假脱机”和“关闭假脱机”即可。

二、方法改进:

首先编辑一个脚本文件,比如命名为abc.sh

spool abc.txt;                      #将结果输出为abc.txt

select * from wap_subscribe where Telcomcompanyid = '20200' and (Orderdate like '2005%' or Disorderdate like '2005%');

spool off;

在sql>模式下使用@/opt/abc.sh即可,查询结果即输出到abc.txt了。

三、输出到Excel文件

SQL> set termout off

SQL> set heading off

SQL> set pagesize 0

SQL> set verify off

SQL> set echo off

SQL> spool /tmp/aaa.csv

SQL> select id || ',' || name || ',' from test;   #多字个段分列存放在表格中

1,,

2,,

3,6,

,7,

SQL> spool off

补充一下:

在将查结果保存到文件的时候,可能不希望将结果输出到屏幕,这样会影响速度。那么就可以能通过脚本的方式来解决。在命令行下面实现不了,所以写在脚本中,招行一下就可以了。

创建文件

more email.sql

set term off

spool user.txt

@get_email.sql

spool off

exit

more get_email.sql

select email from album.wdxc_user;

sqlplus uesr/passwd@aaa.bbb.com

sql>@email.sql

这样执行完了,就可以看到user.txt文件了。

把查询内容输出到文本

set echo off pagesize 0 heading off feedback off termout off

spool test.sql

select count(*) from user_tables;

spool off

上面的脚本执行完之后就会将查询内容输出至test.sql

第一行中的set命令对环境进行了设置

具体要设置哪些可以根据需求自己增减,

下面附上set参数说明

set time on               //显示时间

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

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

set echo on               //设置运行命令是是否显示语句

set feedback on;          //设置显示“已选择XX行”

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

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

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

set linesize 80;        //输出一行字符个数,缺省为80

set numwidth 12;         //输出number类型域长度,缺省为10

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

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

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

set serveroutput on;      //设置允许显示输出类似dbms_output

set timing on;            //设置显示“已用时间:XXXX”

set autotrace on-;        //设置允许对执行的sql进行分析

set verify off            //可以关闭和打开提示确认信息old 1和new 1的显示.

oracle中导出查询结果,Oracle SQL 查询结果导出到文本或Excel文件方法相关推荐

  1. 【DB笔试面试618】在Oracle中,“OR扩展”可以有查询转换吗?

    ♣题目 部分 在Oracle中,"OR扩展"可以有查询转换吗? ♣答案部分 同一字段: 1LHR@orclasm > SELECT * FROM SCOTT.EMP A WH ...

  2. 【DB笔试面试615】在Oracle中,和谓词相关的查询转换有哪些?

    ♣题目部分 在Oracle中,和谓词相关的查询转换有哪些? ♣答案部分 (一)过滤谓词推入 1LHR@orclasm > SELECT * FROM (SELECT * FROM VW_SVM_ ...

  3. 【DB笔试面试614】在Oracle中,和视图相关的查询转换有哪些?

    ♣题目 部分 在Oracle中,和视图相关的查询转换有哪些? ♣答案部分 (一)简单视图合并 1CREATE OR REPLACE VIEW VW_SVM_LHR AS SELECT * FROM S ...

  4. oracle中的输入 amp,Oracle之SQL学习

    1.Oracle 更改会话(更改oracle中显示日期的方式) SQL> alter session set NLS_date_format='YYYY-MM-DD'; 2.使用绑定变量来输入记 ...

  5. oracle中的guid,在Oracle中使用Guid

    在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...

  6. 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测

    预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...

  7. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  8. 查询oracle中用户的角色,oracle中用户角色的查询和授权

    用户拥有的系统权限 select  privilege  from dba_sys_privs  where grantee='&USERNAME' union select  privile ...

  9. 怎样在oracle中加下划线,Oracle使用like查询时对下划线的处理方法

    如:查询ZJ_STANDARD_ITEM表的name1字段包含"_("的数据 --以下的查询语句执行会发现所查询的数据并不是我们想要数据 select * from ZJ_STAN ...

最新文章

  1. Linux下CMake简明教程(八) 添加编译选项
  2. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传
  3. 在WORD中插入带圈的数字的序号
  4. grep -A :显示匹配行和之后的几行
  5. C++ 学习之旅(11)——类和结构中的static
  6. [收藏]网络营销十道羊皮卷
  7. 周期三角波频谱图_雷达物位计厂家告诉你,什么是调频连续波雷达物位计
  8. 幸福框架:可扩展的、动态的、万能的 编号生成器
  9. code405是什么意思_HTTP返回reponse code 405
  10. FTP、TFTP 实现 NAT ALG 访问
  11. 港科百创 | 一清创新完成Pre-A+轮战略融资
  12. 京东 ChubaoFS 分布式文件系统分析
  13. 如何在php中显示170cm,身高 158cm,怎么穿才能像 170cm?
  14. 数据结构----主席树
  15. 通过快递鸟如何接入韵达速递电子面单
  16. IDA详细使用教程,适合逆向新手的实验报告
  17. 互联网汽车信息娱乐系统基础框架
  18. python爬虫必备防检测工具
  19. 汉堡王什么汉堡好吃_汉堡王什么汉堡好吃
  20. 移动端IM的APP的开发技术

热门文章

  1. 华文行楷字帖欣赏_任政书法:行楷字帖《二十四孝组诗》集字版,美不胜收!...
  2. 维度表创建规范_数据仓库维度建模-维度表设计
  3. 4-17 定义一个长方形类,定义 求周长和面积的方法,然后定义一个测试类,进行测试。
  4. Xiaocao's first blog post
  5. 【LDAP】centos搭建openldap
  6. 现代教育技术没有计算机基础知识教程,浅析现代教育技术在专科计算机基础课教学中的应用...
  7. Docker 容器镜像无法正常启动,日志抛出Unable to access jarfile问题的解决方法
  8. python小技巧之:同时安装py2和py3,如何在指定的版本下pip安装包
  9. WEB网站设计用户登录的安全机制
  10. 专为球迷准备的免费邮箱