linux spool 脚本,shell脚本中生成的spool文件没有执行的语句

本文记录了一个在Linux环境下使用SQL*Plus执行Oracle数据库脚本时遇到的问题。作者发现生成的spool文件中没有预期的SQL查询结果。经过排查,问题出在使用了-s参数,该参数设置为静默模式,导致命令不被显示。移除-s参数后,脚本正常执行,查询结果成功写入spool文件。这是一个关于SQL*Plus使用技巧和Linux shell脚本的实战案例。
摘要由CSDN通过智能技术生成

#!/bin/bash

#start on 20151209

#auto_check.sh

#liming

#aim to do db check automatically

#usage:

su - oracle -c 'sqlplus -s / as sysdba'<< EOF >>/u01/app/oracle/script_test_result/auto_check.log 2>1

set echo on

set feedback on

spool /home/oracle/script_test_result/auto_check.log

select * from lm.lm_t1;

spool off

exit

EOF

生成的spool文件auto_check.log里面,没有我执行的语句。这个怎么搞呀?

[root@single1 script_test_result]# more auto_check.log

no rows selected

由于对一些命令的不熟悉,导致了我在这个问题上纠结了很久。后来查了许多资料,发现,其实不是set echo on 的问题,而是连接语句的问题。

sqlplus -s / as sysdba

中的-s,查了一下命令,我懂了。。

-S Sets silent mode which suppresses the display of

the SQL*Plus banner, prompts, and echoing of

commands.

果断将-s去掉,然后就恢复了。

[oracle@single1 script_test_result]$ cat auto_check.log

SQL> select * from dual;

X

1 row selected.

SQL> spool off

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值