呼び出し演算子&
を使用します 、Keith Hillが質問で提案したように、スペースと引用符を含むパラメーターを使用してPowerShellでEXEファイルを実行する方法。
& 'path\sqlplus.exe' 'system/[email protected] as sysdba'
スペースがあるため、ユーザー名とパスワードを引用符で囲みました。
スクリプトを開始するには、次のように別のパラメーターを追加します。
& 'path\sqlplus.exe' 'system/[email protected] as sysdba' '@my_script.sql'
ORA-12154エラーが発生し、他のユーザーが接続を確立していることがわかっている場合(これは、データベース・リスナーが正しく実行されていることを意味します)。次に、SQL*Plusが私のtnsnameファイルを見つけることができるかどうかを調べます。
私の最初のタスクは、Windowscmd.exeで次のようにtnspingできるかどうかを確認することです。
tnsping orcl
接続できる(または確立できない)ことを確認します。
できない場合は、環境変数ORACLE_HOMEが設定されているかどうかを確認します。 SQL * Plusは、これを使用してtnsname.oraファイルを検索します。
設定されていない場合は、PowerShellで次のステートメントを実行します(この環境変数を確立するため):
[Environment]::SetEnvironmentVariable("ORACLE_HOME", "C:\app\Administrator\product\11.2.0\client_1" , "User")
次に、(上記で特定された)tnspingを再試行します。
成功したら、上記のスクリプト実行コマンドの実行を再試行します。