2013年4月24日水曜日

oracleエラーの判別

olacleのDBエラーは、「エラー種類」("ORA"など)と「エラーコード」(4桁数値)で返却されます。


プログラムでDBエラーが発生した際、そのエラー種類によって処理を分ける為に
エラーコードで判別しようとしましたが、エラーコードは各エラー種類によって一意となる為、
エラーコードのみでの判別は、やや危険が残るということがわかりました。

ちょうど、54(SELECT FOR UPDATE NOWAITを発行してロック済みだった場合のエラー)の判別をしようとしていて調べてみたら、ORA以外で54のエラーコードを使っていることがわかったので、
ORAと54で特定して処理を分岐することにしました。

RoguwaveっていうライブラリがORA-0054~というメッセージを返すので、Strstrの一致判定を使用。

ちなみにエラー種類とコードの組み合わせを調べたのは以下のサイト。
便利♪

http://otn.oracle.co.jp/onlineservices/msg11g/

0 件のコメント:

コメントを投稿