我想知道它是否有可能通過某種方式得到sqlplus
輸出來發現我的數據庫是否啓動。如何驗證sqlplus可以連接?
我想運行一個數據庫上的腳本列表,但在此之前,我想知道數據庫是否啓動並正在運行我的腳本。
這裏是我的嘗試:
sqlplus /@DB1 << EOF
> select 1 from dual;
> EOF
它不能連接,但sqlplus中的返回碼仍表示「一切OK」!
SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 28 10:06:41 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. ERROR: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor Enter user-name: SP2-0306: Invalid option. Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]] where ::= [/][@] ::= [][/][@] Enter user-name: [email protected]:/tmp/jcho $ echo $? 0
我知道我可以用grep我的測試查詢的結果,這樣的:
a.sh
sqlplus /@DB1 << EOF
select 'ALL_GOOD_BOY' from dual;
EOF
電話:
給出1
行,如果連接正常工作,0
否則:
$ a.sh |grep ALL_GOOD_BOY|wc -l
...這對我來說似乎很多步驟。任何其他方式設置sqlplus在「無法連接」給出一個「錯誤」返回碼的模式?
說實話,我認爲從雙選擇的方式是檢查它的最好方法。這裏是另一個線程與非常相似的主題:http://dba.stackexchange.com/questions/4718/how-check-that-the-oracle-database-is-up – Kacper
這就是我害怕。如果我真的可以連接,我可以像[這裏](http://stackoverflow.com/a/18111656/6019417)那樣更改SQLPLUS返回碼。但我不知道我能否連接。 –
我不得不看更深一點,它在那裏:https://stackoverflow.com/questions/2254761/sqlplus-force-it-to-return-an-error-code –