代码之家  ›  专栏  ›  技术社区  ›  RRUZ

在哪里可以找到预定义的Oracle pl/SQL异常的完整列表?

  •  22
  • RRUZ  · 技术社区  · 16 年前

    在哪里可以找到所有预定义Oracle pl/SQL异常的完整列表?

    link

    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
    
    4 回复  |  直到 12 年前
        1
  •  23
  •   Brian    12 年前

    这些是11gr2的,快速扫描显示它们仍然相同: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10472/errors.htm#BABHDGGG

          /********** 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 **********/
    
        2
  •  6
  •   Egor Rogov    16 年前

    预定义的异常在包SYS.STANDARD中声明,在那里您肯定会找到它们。

    在我的9.2.0.7中,我发现一个不在列表中:

    USERENV_COMMITSCN_ERROR exception;
    pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, '-1725');
    
        3
  •  0
  •   maximusin9    16 年前

    除了你的问题:异常的名称是什么,何时出现 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

        4
  •  -2
  •   sam-w    13 年前
    No_data_found        ora-01403
    too_many_rows        ora-1422
    zero_divide          ora-1476
    dup_val_on_index     ora-00001
    invalid_cursor       ora-1001
    cursor already_open  ora-06511
    invalid_number       ora-01722
    value_error          ora-06502
    ACCESS_INTO_NULL     ORA-06530
    CASE_NOT_FOUND       ORA-06592
    COLLECTION_IS_NULL   ORA-06531