例外処理
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件更新を検出する。
何かあればどうぞ。