事前定義されたすべてのOracle pl/SQL例外の完全なリストはどこにありますか?
この中に リンク 私はこのリストを見つけました、もうありますか?
ACCESS_INTO_NULL ORA-06530
CASE_NOT_FOUND ORA-06592
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
NOT_LOGGED_ON ORA-01012
PROGRAM_ERROR ORA-06501
ROWTYPE_MISMATCH ORA-06504
SELF_IS_NULL ORA-30625
STORAGE_ERROR ORA-06500
SUBSCRIPT_BEYOND_COUNT ORA-06533
SUBSCRIPT_OUTSIDE_LIMIT ORA-06532
SYS_INVALID_ROWID ORA-01410
TIMEOUT_ON_RESOURCE ORA-00051
TOO_MANY_ROWS ORA-01422
VALUE_ERROR ORA-06502
ZERO_DIVIDE ORA-01476
これらは11gr2用であり、クイックスキャンでは、これらはまだ同じであるとされています。 http://download.Oracle.com/docs/cd/E11882_01/appdev.112/e10472/errors.htm#BABHDGGG
これは$ Oracle_HOME/rdbms/admin/stdspec.sqlからです(egorius標準パッケージの良い点は、答えを探す場所です)
/********** Predefined exceptions **********/
CURSOR_ALREADY_OPEN exception;
pragma EXCEPTION_INIT(CURSOR_ALREADY_OPEN, '-6511');
DUP_VAL_ON_INDEX exception;
pragma EXCEPTION_INIT(DUP_VAL_ON_INDEX, '-0001');
TIMEOUT_ON_RESOURCE exception;
pragma EXCEPTION_INIT(TIMEOUT_ON_RESOURCE, '-0051');
INVALID_CURSOR exception;
pragma EXCEPTION_INIT(INVALID_CURSOR, '-1001');
NOT_LOGGED_ON exception;
pragma EXCEPTION_INIT(NOT_LOGGED_ON, '-1012');
LOGIN_DENIED exception;
pragma EXCEPTION_INIT(LOGIN_DENIED, '-1017');
NO_DATA_FOUND exception;
pragma EXCEPTION_INIT(NO_DATA_FOUND, 100);
ZERO_DIVIDE exception;
pragma EXCEPTION_INIT(ZERO_DIVIDE, '-1476');
INVALID_NUMBER exception;
pragma EXCEPTION_INIT(INVALID_NUMBER, '-1722');
TOO_MANY_ROWS exception;
pragma EXCEPTION_INIT(TOO_MANY_ROWS, '-1422');
STORAGE_ERROR exception;
pragma EXCEPTION_INIT(STORAGE_ERROR, '-6500');
PROGRAM_ERROR exception;
pragma EXCEPTION_INIT(PROGRAM_ERROR, '-6501');
VALUE_ERROR exception;
pragma EXCEPTION_INIT(VALUE_ERROR, '-6502');
ACCESS_INTO_NULL exception;
pragma EXCEPTION_INIT(ACCESS_INTO_NULL, '-6530');
COLLECTION_IS_NULL exception;
pragma EXCEPTION_INIT(COLLECTION_IS_NULL , '-6531');
SUBSCRIPT_OUTSIDE_LIMIT exception;
pragma EXCEPTION_INIT(SUBSCRIPT_OUTSIDE_LIMIT,'-6532');
SUBSCRIPT_BEYOND_COUNT exception;
pragma EXCEPTION_INIT(SUBSCRIPT_BEYOND_COUNT ,'-6533');
-- exception for ref cursors
ROWTYPE_MISMATCH exception;
pragma EXCEPTION_INIT(ROWTYPE_MISMATCH, '-6504');
SYS_INVALID_ROWID EXCEPTION;
PRAGMA EXCEPTION_INIT(SYS_INVALID_ROWID, '-1410');
-- The object instance i.e. SELF is null
SELF_IS_NULL exception;
pragma EXCEPTION_INIT(SELF_IS_NULL, '-30625');
CASE_NOT_FOUND exception;
pragma EXCEPTION_INIT(CASE_NOT_FOUND, '-6592');
-- Added for USERENV enhancement, bug 1622213.
USERENV_COMMITSCN_ERROR exception;
pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, '-1725');
-- Parallel and pipelined support
NO_DATA_NEEDED exception;
pragma EXCEPTION_INIT(NO_DATA_NEEDED, '-6548');
-- End of 8.2 parallel and pipelined support
/********** Add new exceptions here **********/
定義済みの例外はパッケージSYS.STANDARDで宣言されており、それらはすべて確実に見つかります。
私の9.2.0.7で、リストにないものを見つけました:
USERENV_COMMITSCN_ERROR exception;
pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, '-1725');
あなたの質問に加えて、例外の名前は何ですか、ORA-03135: connection lost contact
エラーが表示されます。どうすれば対応できますか?
解決策は、新しい例外を定義し、それをエラーコードに関連付けることです。
exception connection_error;
pragma exception_init(connection_error, -3135);
...
exception
when connection_error then
...
http://download-west.Oracle.com/docs/cd/B19306_01/appdev.102/b14261/exceptioninit_pragma.htm