Wie kann ich überprüfen, ob sqlplus eine Verbindung herstellen kann?

8

Ich würde gerne wissen, ob es möglich ist, sqlplus output zu bekommen, um herauszufinden, ob meine Datenbank hochgefahren ist.

Ich möchte eine Liste von Skripten in einer Datenbank ausführen, aber bevor ich das tue, möchte ich wissen, ob die Datenbank mit meinem Skript läuft und läuft.

Hier ist was ich versucht habe:

%Vor%

Es kann keine Verbindung hergestellt werden, aber der Rückkehrcode von sqlplus sagt immer noch "Alles in Ordnung"!

%Vor%

Ich weiß, dass ich das Ergebnis meiner Testabfrage wie folgt grep:

a.sh

%Vor%

call:

gibt 1 line an, wenn die Verbindung funktioniert, 0 andernfalls:

%Vor%

... Das scheint mir viele Schritte zu geben. Eine andere Möglichkeit, sqlplus in einem Modus zu setzen, in dem "Verbindung nicht möglich" einen "Fehler" -Rückgabecode liefert?

    
J. Chomel 28.11.2016, 09:20
quelle

2 Antworten

6

Dank der Referenz von @Kacper konnte ich diese sqlplus /nolog auf meinen Fall anpassen; Hier ist die Idee:

  1. Öffnen Sie sqlplus nur ohne Verbindung
  2. legt einen spezifischen Rückgabecode für SQLERROR fest - dies geschieht, wenn connect fehlschlägt
  3. Rückkehrcode kann wie üblich im Aufruferskript gesammelt werden:

a.sh

%Vor%

Dann der Anruf:

%Vor%

Auch verwandt: Verbinden Sie sich mit sqlplus in ein Shell-Skript und führen Sie SQL-Skripte aus

    
J. Chomel 29.11.2016, 07:52
quelle
1

Hier ist eine andere Lösung, die Sie verwenden könnten: WHENEVER SQLERROR sql.sqlcode funktioniert für mich (auf Oracle 11g):

%Vor%     
Jika 07.08.2017 14:26
quelle

Tags und Links