#!/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