「例外処理」の編集履歴(バックアップ)一覧に戻る

例外処理 - (2005/11/17 (木) 15:56:02) のソース

#contents
*例外処理
> EXCEPTION
>   WHEN 例外識別子 TEHN
>     例外処理...
**例外処理
-SQLCODE...エラーコード値。-値で取得できる。たとえば、ACCESS_INTO_NULLの場合、-6530が取得出来る。
-ただし、ORA-01403(NO_DATA_FOUND)の場合は+100が取得できる。
-SQLERRM...エラーメッセージ。引数付で呼び出した場合、引数に該当するエラーメッセージが取得できる。(SQLERRM(-6530)->ACCESS_INTO_NULLに該当するエラーメッセージ)
**例外識別子
|例外識別子|エラーコード|概要|
|ACCESS_INTO_NULL|ORA-06530|未初期化オブジェクトに代入した|
|COLLECTION_IS_NULL|ORA-06531|コレクション未初期化|
|CURSOR_ALREADY_OPEN|ORA-06511|カーソルが既にオープンされている|
|DUP_VAL_ON_INDEX|ORA-00001|キーが重複した|
|INVALID_CURSOR|ORA-01001|カーソルがオープンされていない|
|INVALID_NUMBER|ORA-01722|数値が正しくない|
|LOGIN_DENIED|ORA-01017|ログインできない|
|NO_DATA_FOUND|ORA-01403|SELECT INTO レコードなし|
|NOT_LOGGED_ON|ORA-01012|ログインできていない|
|PROGRAM_ERROR|ORA-06501|PL/SQL 内部エラー|
|ROWTYPE_MISMATCH|ORA-06504|互換性なし|
|STORAGE_ERROR|ORA-06500|PL/SQL メモリ不足|
|SUBSCRIPT_BEYOND_COUNT|ORA-06533|コネクション要素オーバ|
|SUBSCRIPT_OUTSIDE_LIMIT|ORA-06532|有効範囲外添字|
|TIMEOUT_ON_RESOURCE|ORA-00051|タイムアウト|
|TOO_MANY_ROWS|ORA-01422|複数行あり|
|VALUE_ERROR|ORA-06502|算術エラー|
|ZERO_DIVIDE|ORA-01476|ゼロの割り算|
**UPDATE時の0件更新を検出する。
-UPDATE文実行後、SQL%NOTFOUNDを検査する。TRUEなら0件更新。
-DUP_VAL_ON_INDEXをキャッチする。
多分どちらかでOK。
記事メニュー
人気記事ランキング
目安箱バナー