アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

[環境]
OS:Solaris9
DB:Oracle9i

A 回答 (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-から始まるエラーがあれば異常発生とします。
    • good
    • 0

>これは仕様なのでしょうか?


startupやshutdownをSQL文と解釈しているのが間違いの始まり。
起動/停止の”コマンド”なので、SQL命令のようにキャッチできない。
(仕様通りなんだけど、仕様を誤解している)

unixプラットフォームのオラクルには詳しくないのだけど・・
コマンド投入時の標準出力を見れば良いと思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す