Wie führen Sie eine SQL-Plus-Skript in PowerShell
Ich versuche, melden Sie sich bei der Oracle-DB mit Hilfe von PowerShell, und führen Sie ein Skript namens "C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql" Wenn ich führen Sie die PS nichts passiert.
Hier ist, was ich habe.
$adminLogon = "sys as sysdba/manager@ORCL"
$logon = "sqlplus\sql/manager@ORCL"
$mydata = Invoke-SqlPlus -inputfile "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql" $logon
Ich habe auch versucht diese.
$database = "ORCL";
$user = "sys as sysdba";
$pw = "manager";
sqlplus.exe -d $database -U $user -P $pw -I "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql"
Habe ich versucht, diese.
& 'C:\app\Administrator\product\11.2.0\client_1\BIN\sqlplus.exe' 'QE-JDBC-1/manager@ORCL sys as sysdba' '@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql'
Bekomme ich die Fehlermeldung, "& : Das Modul 'sqlplus' konnte nicht geladen werden. Für weitere Informationen, rufen Sie 'Import-Modul sqlplus'.
Bei Zeile:5 Zeichen:3
+ & $mydata Invoke-SqlPlus -inputfile "@C:\Users\Administrator\Desktop\oracle\Orac ...
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (sqlplus\sql/manager@ORCL:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CouldNotAutoLoadModule"
- Haben Sie sich "Wie zu ausführen exe-Datei in powershell bei Parameter mit Leerzeichen und Anführungszeichen" stackoverflow.com/questions/1673967/.... Keith Hill ' s Antwort für mich funktioniert.
- Hey, nur für den Fall, Sie wollen immer noch, zum ausführen von SQL*Plus auf PowerShell, werfen Sie einen Blick auf dieses Modul von: powershellgallery.com/packages/JS.OracleDatabase
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich den call operator,
&
, als Keith Hill hat vorgeschlagen, mit der Frage, Gewusst wie: ausführen einer EXE-Datei in PowerShell bei Parameter mit Leerzeichen und Anführungszeichen.Legte ich den Benutzernamen, das Passwort in Anführungszeichen wegen den Leerzeichen.
Starten Sie ein Skript, füge ich noch einen parameter wie folgt:
Wenn Sie die Fehlermeldung ORA-12154 Fehler, und Sie wissen, dass andere Benutzer
hergestellte verbindungen (was bedeutet, dass die Datenbank-listener ausgeführt wird
richtig); ich würde dann überprüfen, wenn SQL*Plus finden meine tnsname-Datei.
Meine erste Aufgabe wäre, zu sehen, wenn ich kann tnsping wie folgt in Windows cmd.exe:
Wird es bestätigen, dass eine Verbindung kann (oder kann nicht hergestellt werden).
Falls nicht, würde ich überprüfen, um zu sehen, ob die Umgebungsvariable ORACLE_HOME,
eingestellt ist. SQL*Plus verwendet das, um zu finden, die tnsname.ora-Datei.
Wenn es nicht gesetzt ist, würde ich diese Anweisung auszuführen in der PowerShell (zu schaffen
diese Umgebungsvariable):
Als Nächstes würde ich auf "wiederholen", tnsping (oben gekennzeichnet).
Einmal erfolgreich, würde ich erneut versuchen, führen Sie das Skript ausführen obigen Befehls.
In der Windows PowerShell-Eingabeaufforderung den code nicht erfordern eine variable Einstellung oder etwas Phantasie. Nur dazu:
sqlplus ElBankoUser\SupaSecretyPass "@C:\Users\ElBankoUser\Documents\MaFancySckrp.sql"
Benutze ich dieses:
Können Sie .NET-Oracle-Bibliothek DLL, so stellen Sie sicher, dass Sie die erforderliche DLL-Datei unter der
lib
OrdnerWarum nicht diese?
sqlplus -s $adminLogin "@C:\Users\Administrator\Desktop\oracle\OracleCleanTest.sql"
-s nur unterdrückt das sqlplus-banner.