Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So führen Sie ein SQL Plus-Skript in PowerShell aus

Ich verwende den Aufrufoperator & , wie Keith Hill mit der Frage vorgeschlagen hat, wie man eine EXE-Datei in PowerShell mit Parametern mit Leerzeichen und Anführungszeichen ausführt.

& 'path\sqlplus.exe' 'system/[email protected] as sysdba'

Ich habe den Benutzernamen und das Passwort wegen der Leerzeichen in Anführungszeichen gesetzt.

Um ein Skript zu starten, füge ich wie folgt einen weiteren Parameter hinzu:

 & 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'

Wenn Sie den ORA-12154-Fehler erhalten und wissen, dass andere Benutzer Verbindungen hergestellt haben (was impliziert, dass der Datenbank-Listener ordnungsgemäß ausgeführt wird); Ich würde dann prüfen, ob SQL*Plus meine tnsname-Datei finden kann.

Meine erste Aufgabe wäre zu sehen, ob ich in Windows cmd.exe wie folgt tnspen kann:

tnsping orcl

Es wird bestätigt, dass eine Verbindung hergestellt werden kann (oder nicht).

Wenn dies nicht möglich ist, würde ich prüfen, ob die Umgebungsvariable ORACLE_HOME gesetzt ist. SQL*Plus verwendet dies, um die Datei tnsname.ora zu finden.

Wenn es nicht gesetzt ist, würde ich diese Anweisung in PowerShell ausführen (um diese Umgebungsvariable einzurichten):

[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")

Als nächstes würde ich erneut versuchen, tnsping (oben identifiziert) auszuführen.

Sobald dies erfolgreich war, würde ich erneut versuchen, den obigen Befehl zum Ausführen des Skripts auszuführen.