一、指定格式
SAMS_DBURL=SAMS/Sump_2020
#!/bin/bash
returnValue=`
sqlplus -S ${SAMS_DBURL}<< !
set feedback off
set heading off
set linesize 800
set trimspool on
set pagesize 0
spool /sams/bbb/aaa.dat
select TASKCODE||'|+|'||TASKNAME||'|+|'||PRIORITY from sys_task;
quit;
exit;
!`
echo ${returnValue}
# -S:去除多余项,简洁展示
# feedback:设置显示“已选择XX行”
# heading:输出标题城,缺省为off
# pagesize:每一页的行数,0表示不分页,缺省为24
# colsep:列与列之间的分隔符
# linesize:屏幕显示行宽,一般设置较大
# autotrace:允许对执行的sg1进行分析
# trimspool:去除重定向 (spooI)输出每行的拖尾空格,缺省为off
# termout:显示脚本中的命令执行结果
# spool:输出到指定文件
# 常用到的脚本处理方法。
# sed 's/[ ]\{2,\}\|[ ]\{1,\}/ /g;/^$/d' /sams/bbb/aaa.dat | sed 's/[ \t]*$//g'
# awk '{print $1}' aaa.dat | sed "/^s/d"
这种写法可以在脚本中查询数据库信息,根据查询结果returnValue决定接下来要做什么事。
二、导出到Excell中
SAMS_DBURL=SAMS/Sump_2020
#!/bin/bash
returnValue=`
sqlplus -S ${SAMS_DBURL}<< EOF
set linesize 800
set pagesize 1000
set term off feedback off verify off
set markup html on entmap ON spool on preformat off
spool /sams/aaa/aaa.xls
@sql.sq1
spool off
exit;
EOF`
echo ${returnValue}
# sql.sql
select t.TASKCODE TASKCODE,t.TASKNAME TASKNAME,t.PRIORITY PRIORITY,t.CONTENT CONTENT,t.STATUS STATUS,t.TASKCLASS TASKCLASS,to_char(t.EFFICIENTDATE,'yyyy-mm-dd') EFFICIENTDATE from sys_task t;
版权声明:本文为weixin_45842494原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。