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 件のコメント:
コメントを投稿