「例外処理」の編集履歴(バックアップ)一覧に戻る
例外処理 - (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。