• ベストアンサー

startup、shutdownコマンド実行時のエラーでもリターンコードは0

whenever oserror exit failure whenever sqlerror exit failure を付けていても startupコマンドもしくはshutdownコマンドを実行してエラーが発生した場合、リターンコードは0になってしまいます (alter database openのようにalter文を使うと、リターンコードは0以外になります)。 これは仕様なのでしょうか? [環境] OS:Solaris9 DB:Oracle9i

質問者が選んだベストアンサー

  • ベストアンサー
  • FudaKeji
  • ベストアンサー率73% (58/79)
回答No.2

私がよく使う方法は、 --- startup.sql --- conn sys/xxxx as sysdba spool startup.log startup spool off exit --- dbstart.sh --- #!/bin/sh sqlplus /nolog @startup.sql grep ORA- startup.log if [ $? -eq 0 ] ; then echo "NG" fi という具合に、結果をspool(もしくは標準出力をリダイレクト)し、ORA-から始まるエラーがあれば異常発生とします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

>これは仕様なのでしょうか? startupやshutdownをSQL文と解釈しているのが間違いの始まり。 起動/停止の”コマンド”なので、SQL命令のようにキャッチできない。 (仕様通りなんだけど、仕様を誤解している) unixプラットフォームのオラクルには詳しくないのだけど・・ コマンド投入時の標準出力を見れば良いと思いますよ。

すると、全ての回答が全文表示されます。

関連するQ&A