oracle 系统预定义异常表(转)

ACCESS_INTO_NULL

未定义对象

CASE_NOT_FOUND

CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时

COLLECTION_IS_NULL

集合元素未初始化

CURSER_ALREADY_OPEN

游标已经打开

DUP_VAL_ON_INDEX

唯一索引对应的列上有重复的值

INVALID_CURSOR

在不合法的游标上进行操作

INVALID_NUMBER

内嵌的 SQL 语句不能将字符转换为数字

NO_DATA_FOUND

使用 select into 未返回行,或应用索引表未初始化的元素时

TOO_MANY_ROWS

执行 select into 时,结果集超过一行

ZERO_DIVIDE

除数为 0

SUBSCRIPT_BEYOND_COUNT

元素下标超过嵌套表或 VARRAY 的最大值

SUBSCRIPT_OUTSIDE_LIMIT

使用嵌套表或 VARRAY 时,将下标指定为负数

VALUE_ERROR

赋值时,变量长度不足以容纳实际数据

LOGIN_DENIED

PL/SQL 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码

NOT_LOGGED_ON

PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据

PROGRAM_ERROR

PL/SQL 内部问题,可能需要重装数据字典& pl./SQL 系统包

ROWTYPE_MISMATCH

宿主游标变量与 PL/SQL 游标变量的返回类型不兼容

SELF_IS_NULL

使用对象类型时,在 null 对象上调用对象方法

STORAGE_ERROR

运行 PL/SQL 时,超出内存空间

SYS_INVALID_ID

无效的 ROWID 字符串

TIMEOUT_ON_RESOURCE

Oracle 在等待资源时超时

Exception   Oracle   Error   SQLCODE   Value 
ACCESS_INTO_NULL    ORA-06530     -6530
CASE_NOT_FOUND            ORA-06592     -6592
COLLECTION_IS_NULL        ORA-06531    -6531
CURSOR_ALREADY_OPEN       ORA-06511    -6511
DUP_VAL_ON_INDEX          ORA-00001    -1
INVALID_CURSOR            ORA-01001    -1001
INVALID_NUMBER            ORA-01722    -1722
LOGIN_DENIED              ORA-01017    -1017
NO_DATA_FOUND             ORA-01403    +100
NOT_LOGGED_ON             ORA-01012    -1012
PROGRAM_ERROR             ORA-06501    -6501
ROWTYPE_MISMATCH          ORA-06504    -6504
SELF_IS_NULL              ORA-30625    -30625
STORAGE_ERROR             ORA-06500    -6500
SUBSCRIPT_BEYOND_COUNT    ORA-06533    -6533
SUBSCRIPT_OUTSIDE_LIMIT   ORA-06532    -6532
SYS_INVALID_ROWID         ORA-01410    -1410
TIMEOUT_ON_RESOURCE       ORA-00051    -51
TOO_MANY_ROWS             ORA-01422    -1422
VALUE_ERROR               ORA-06502    -6502
ZERO_DIVIDE               ORA-01476    -1476


Brief   descriptions   of   the   predefined   exceptions   follow:
Exception   Raised   when   ... 
ACCESS_INTO_NULL
  Your   program   attempts   to   assign   values   to   the   attributes   of   an   uninitialized   (atomically   null)   object.
CASE_NOT_FOUND
  None   of   the   choices   in   the   WHEN   clauses   of   a   CASE   statement   is   selected,   and   there   is   no   ELSE   clause.
COLLECTION_IS_NULL
  Your   program   attempts   to   apply   collection   methods   other   than   EXISTS   to   an   uninitialized   (atomically   null)   nested   table   or   varray,   or   the   program   attempts   to   assign   values   to   the   elements   of   an   uninitialized   nested   table   or   varray.
CURSOR_ALREADY_OPEN
  Your   program   attempts   to   open   an   alrea***   open   cursor.   A   cursor   must   be   closed   before   it   can   be   reopened.   A   cursor   FOR   loop   automatically   opens   the   cursor   to   which   it   refers.   So,   your   program   cannot   open   that   cursor   inside   the   loop.
DUP_VAL_ON_INDEX
  Your   program   attempts   to   store   duplicate   values   in   a   database   column   that   is   constrained   by   a   unique   index.
INVALID_CURSOR
  Your   program   attempts   an   illegal   cursor   operation   such   as   closing   an   unopened   cursor.
INVALID_NUMBER
  In   a   SQL   statement,   the   conversion   of   a   character   st***  into   a   number   fails   because   the   st***  does   not   represent   a   valid   number.   (In   procedural   statements,   VALUE_ERROR   is   raised.)   This   exception   is   also   raised   when   the   LIMIT-clause   expression   in   a   bulk   FETCH   statement   does   not   evaluate   to   a   positive   number.
LOGIN_DENIED
  Your   program   attempts   to   log   on   to   Oracle   with   an   invalid   username   and/or   password.
NO_DATA_FOUND
  A   SELECT   INTO   statement   returns   no   rows,   or   your   program   references   a   deleted   element   in   a   nested   table   or   an   uninitialized   element   in   an   index-by   table.   SQL   aggregate   functions   such   as   AVG   and   SUM   always   return   a   value   or   a   null.   So,   a   SELECT   INTO   statement   that   calls   an   aggregate   function   never   raises   NO_DATA_FOUND.   The   FETCH   statement   is   expected   to   return   no   rows   eventually,   so   when   that   happens,   no   exception   is   raised.
NOT_LOGGED_ON
  Your   program   issues   a   database   call   without   being   connected   to   Oracle.
PROGRAM_ERROR
  PL/SQL   has   an   internal   problem.
ROWTYPE_MISMATCH
  The   host   cursor   variable   and   PL/SQL   cursor   variable   involved   in   an   assignment   have   incompatible   return   types.   For   example,   when   an   open   host   cursor   variable   is   passed   to   a   stored   subprogram,   the   return   types   of   the   actual   and   formal   parameters   must   be   compatible.
SELF_IS_NULL
  Your   program   attempts   to   call   a   MEMBER   method   on   a   null   instance.   That   is,   the   built-in   parameter   SELF   (which   is   always   the   first   parameter   passed   to   a   MEMBER   method)   is   null.
STORAGE_ERROR
  PL/SQL   runs   out   of   memory   or   memory   has   been   corrupted.
SUBSCRIPT_BEYOND_COUNT
  Your   program   references   a   nested   table   or   varray   element   using   an   index   number   larger   than   the   number   of   elements   in   the   collection.
SUBSCRIPT_OUTSIDE_LIMIT
  Your   program   references   a   nested   table   or   varray   element   using   an   index   number   (-1   for   example)   that   is   outside   the   legal   range.
SYS_INVALID_ROWID
  The   conversion   of   a   character   st***  into   a   universal   rowid   fails   because   the   character   st***  does   not   represent   a   valid   rowid.
TIMEOUT_ON_RESOURCE
  A   time-out   occurs   while   Oracle   is   waiting   for   a   resource.
TOO_MANY_ROWS
  A   SELECT   INTO   statement   returns   more   than   one   row.
VALUE_ERROR
  An   arithmetic,   conversion,   truncation,   or   size-constraint   error   occurs.   For   example,   when   your   program   selects   a   column   value   into   a   character   variable,   if   the   value   is   longer   than   the   declared   length   of   the   variable,   PL/SQL   aborts   the   assignment   and   raises   VALUE_ERROR.   In   procedural   statements,   VALUE_ERROR   is   raised   if   the   conversion   of   a   character   st***  into   a   number   fails.   (In   SQL   statements,   INVALID_NUMBER   is   raised.)
ZERO_DIVIDE
  Your   program   attempts   to   divide   a   number   by   zero.

转载于:https://www.cnblogs.com/radiantwf/archive/2010/09/29/1838798.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值