spool 命令详解(Oracle数据库)一 转

1.spool的作用是什么?

spool的作用可以用一句话来描述:在sqlplus中用来保存或打印查询结果。

通过spool 命令,可以将select 数据库的内容写到文件中,通过在sqlplus设置一些参数,使得按指定方式写到文件中。

spool 是sqlplus 下的导出运行命令;execute执行的是sql语句

对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成 (sqlplus的定义:参考SQL*PLUS_百度百科)

2.语法介绍

oracle 10g、11g spool语法
SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]

file_name[.txt]
保存查询结果集的的路径和文件名,如果没有指定后缀名,默认名一般为.lst或.lis。如果指定系统文件为/dev/null and /dev/stderr,则不会添加后缀名。

off
完成spool。

out
停止spool,并将文件输出到终端设备上,如打印机(可能有些操作系统不支持)。

我们从语法上可以看到,oracle在10g、11g中对spool增加了create、replace、append选项,
create
    创建指定文件名的新文件;如指定文件存在,则报文件存在错误。
replace
    如果指定文件存在则覆盖替换;如指定文件不存在,则创建,replace为spool默认选项。
append
    向指定文件名中追加内容;如指定文件不存在,则创建。

sqlplus spool的create、replace、append选项示例

3.利用sqlplus spool将表导成csv文件

sqlplus oracle/pwd@192.168.10.16:1521/orl @/tmp/lxm/export.sql
 export.sql中的脚本如下:

set trimspool on
set linesize 20000
set pagesize 0
set echo off
set feedback off
set newpage 1
set heading off
set wrap off SQLBLANKLINES ON  ---去掉空行
set term off
spool /home/oracle/aaa.csv
select python_student.name||','||python_student.age
from python_student;
spool off
exit
运行结果如下:

打开aaa.csv文件,内容如下

Lily,16
Lucy,15
Jim,18
Kate,19
spool常用的设置:
set head off:输出域标题,缺省为on
set linesize 20000:linesize可以设置的大点,防止一行长度不够
set echo off:显示sqlplus中的每个sql命令本身,缺省为on
set feedback off:回显本次sql命令处理的记录条数,缺省为on
set pagesize 0:输出每页行数,缺省为24,为了避免分页,可设定为0
set termout off:显示脚本中的命令的执行结果,缺省为on
set trimout on:去除标准输出每行的拖尾空格,缺省为off
set trimspool on:去除重定向(spool)输出每行的拖尾空格,缺省为off

set echo on            --是否显示执行的命令内容  
set feedback off       --是否显示 *   rows   selected  
set heading off        --是否显示字段的名称
set verify off         --是否显示替代变量被替代前后的语句。fil
set trimspool off      --去字段空格
set pagesize 1000      --页面大小
set linesize 50//linesize设定尽量根据需要来设定,大了生成的文件也大

 在安装了oracle的机器上就可以报告 plsql的命令,将远程oracle数据库上的文件导出至本地。需要带上IP地址和端口号。

参考:Oracle中SPOOL命令使用方法详解_guanyi的博客-CSDN博客_spool
————————————————
版权声明:本文为CSDN博主「你若安好我便天晴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lixiaomei0623/article/details/121274473

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值