Chciałbym wiedzieć, czy jest możliwe, aby uzyskać dane wyjściowe sqlplus
w pewien sposób, aby dowiedzieć się, czy moja baza danych jest w górze.Jak zweryfikować połączenie sqlplus?
Chcę uruchomić listę skryptów w bazie danych, ale zanim to zrobię, chcę wiedzieć, czy baza danych jest uruchomiona z moim skryptem.
Oto, co starałem:
sqlplus /@DB1 << EOF
> select 1 from dual;
> EOF
To nie może się połączyć, ale kod powrotu sqlplus nadal mówi „wszystko 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
wiem mogę grep wyniku mojej kwerendy testowej tak:
a.sh
sqlplus /@DB1 << EOF
select 'ALL_GOOD_BOY' from dual;
EOF
wezwanie:
daje 1
linię czy połączenie działa, 0
w przeciwnym razie:
$ a.sh |grep ALL_GOOD_BOY|wc -l
... To dla mnie wiele kroków. W jaki inny sposób ustawić sqlplus w trybie, w którym "nie można połączyć" daje kod powrotu "błąd"?
Szczerze mówiąc uważam, że sposób z wyborem z dual jest najlepszym sposobem na sprawdzenie go. Oto kolejny wątek o bardzo podobnym temacie: http://dba.stackexchange.com/questions/4718/how-check-that-the-oracle-database-is-up – Kacper
Tego się boję. Gdybym mógł się połączyć, mógłbym zmienić kod powrotu SQLPLUS, jak [tutaj] (http://stackoverflow.com/a/18111656/6019417). Ale nie wiem, czy mogę się połączyć. –
Musiałem spojrzeć trochę głębiej, było tam: https://stackoverflow.com/questions/2254761/sqlplus-force-it-to-return-an-error-code –