internet2107
Goto Top

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?

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
		}

Content-ID: 348841

Url: https://administrator.de/contentid/348841

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

133883
Lösung 133883 12.09.2017 aktualisiert um 18:02:07 Uhr
Goto Top
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
[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ß