Powershell - Datenbank Oracle SQLPLUS
Ich benötige Hilfe beim Zugriff auf eine Oracle DB.
Es soll aus der Ferne (vom lokalen Client) ein spezieller Befehl auf Basis SQLPLUS ausgeführt werden.
Anstatt auf dem DB-Server soll das vom lokalen Client mit einem Script erfolgen.
Es klappt bis zu einem bestimmten Punkt ohne Probleme, aber das eigentliche SQL-Script wird nicht ausgeführt.
Ich verbinde mich mit dem Befehl (Powershell-Script) auf den Server. Das klappt jedoch nur bis zu einem Punkt, es wird aber nicht das "@DB_Check.sql" ausgeführt.
Woran liegt hier der Fehler? Kann mir hier jemand einen Tipp geben?
Es soll aus der Ferne (vom lokalen Client) ein spezieller Befehl auf Basis SQLPLUS ausgeführt werden.
Anstatt auf dem DB-Server soll das vom lokalen Client mit einem Script erfolgen.
Es klappt bis zu einem bestimmten Punkt ohne Probleme, aber das eigentliche SQL-Script wird nicht ausgeführt.
Ich verbinde mich mit dem Befehl (Powershell-Script) auf den Server. Das klappt jedoch nur bis zu einem Punkt, es wird aber nicht das "@DB_Check.sql" ausgeführt.
Woran liegt hier der Fehler? Kann mir hier jemand einen Tipp geben?
invoke-command -computername dbserver1 -credential $cred -ScriptBlock {
cd d:\temp
set path=d:\oracle\product\12.1.0.2.0\dbhome_1\bin
set ORACLE_HOME=d:\oracle\product\12.1.0.2.0\dbhome_1
set ORACLE_SID=DATENBANK1
sqlplus /nolog
connect / as sysdba
@DB_Check.sql
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 348841
Url: https://administrator.de/contentid/348841
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
1 Kommentar
Moin.
Powershell ist keine Batch-Konsole wie manche immer vermuten!
Bedeutet erstens deine SET-Befehle gehen ins Nirvana, macht man dort über die passenden Funktionen
zweitens öffnest du mit "sqlplus" eine weitere Shell welche die zwei folgenden Befehle nicht erreichen, das geht so nicht. Dafür haben diese Tools meist passende Parameter um diese in einer Zeile mitzugeben!
Siehe dazu
https://stackoverflow.com/questions/18620893/how-do-i-pass-arguments-to- ...
Gruß
Powershell ist keine Batch-Konsole wie manche immer vermuten!
Bedeutet erstens deine SET-Befehle gehen ins Nirvana, macht man dort über die passenden Funktionen
[environment]::SetEnvironmentVariable("testvar","Hallo")
zweitens öffnest du mit "sqlplus" eine weitere Shell welche die zwei folgenden Befehle nicht erreichen, das geht so nicht. Dafür haben diese Tools meist passende Parameter um diese in einer Zeile mitzugeben!
Siehe dazu
https://stackoverflow.com/questions/18620893/how-do-i-pass-arguments-to- ...
Gruß