仕事で使っているOracleの個別パッチ8を適用しようとして、できないPCに遭遇。
コマンドプロンプト上の作業で以下のエラーが出る。
Execution of 'cmd /C C:\tmp\5502226\custom\scripts\pre.bat -apply 5502226 ': Environment variables passed is not correct. Return Code = -1 Command invocation returned Error... '', Return Code = -1 Execution of PRE script failed, with return value = -1 Do you want to proceed? [y|n]
事前に設定している環境変数といえば、
- INVENTORY_LOC
- ORACLE_HOME
だが、これはうまく設定されている。では何?というわけで、Goole検索したところ、中国のサイトらしきページがヒット。これがキャッシュしか残ってなかったのだが、そこにある情報でなんとか解決した。
結論は、
環境変数「PATH」に空白、コロン、ピリオド等の有効文字以外が設定されている。
のようだ。環境変数は、そのコマンドプロンプト上で変更してもそこだけの設定になるので、
set path=c:\oracle\product\10.2.0\client_1\bin
のようにOracleだけの設定にしてやると、エラーを出さずに最後までOPatchが動いた。
ただし、自分のPCには、
- 先頭がORACLE_HOME相当のパス。
- その後、しばらくは「Progra~1...」のパス。
- 最後の方には「Program Files」とかもある。
という状態。後半には空白が入っているのだが。なんで....
判った。
だめなPCの環境変数PATHには「>」が混じっていた。誰が設定したのよコレ!