Používám operátora volání &
, jak navrhl Keith Hill s otázkou, Jak spustit soubor EXE v PowerShellu s parametry s mezerami a uvozovkami.
& 'path\sqlplus.exe' 'system/[email protected] as sysdba'
Kvůli mezerám jsem uživatelské jméno a heslo umístil do uvozovek.
Pro spuštění skriptu přidám další parametr takto:
& 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'
Pokud se vám zobrazuje chyba ORA-12154 a víte, že ostatní uživatelé navázali připojení (což znamená, že naslouchací proces databáze funguje správně); Poté bych prozkoumal, zda SQL*Plus může najít můj soubor tnsname.
Mým prvním úkolem by bylo zjistit, zda mohu tnsping ve Windows cmd.exe takto:
tnsping orcl
Potvrdí, že spojení lze (nebo nelze navázat).
Pokud to nejde, zkontroloval bych, zda je nastavena proměnná prostředí ORACLE_HOME. SQL*Plus to používá k nalezení souboru tnsname.ora.
Pokud není nastaveno, provedl bych tento příkaz v PowerShell (pro vytvoření této proměnné prostředí):
[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")
Dále bych zkusil znovu použít tnsping (uvedený výše).
Jakmile budu úspěšný, zkusil bych znovu spustit výše uvedený příkaz pro spuštění skriptu.