WEB开发网
开发学院数据库Oracle oracle 中的exception 阅读

oracle 中的exception

 2008-10-25 12:58:00 来源:WEB开发网   
核心提示: dup_val_on_index ora-00001 -1 对于数据库表中的某一列,该列已经被限制为唯一索引,oracle 中的exception(2),程序试图存储两个重复的值value_error ora-06502 -6502 在转换字符类型,截取或长度受限时,并且可以通过名字为异常

dup_val_on_index  ora-00001  -1  对于数据库表中的某一列,该列已经被限制为唯一索引,程序试图存储两个重复的值

value_error  ora-06502  -6502  在转换字符类型,截取或长度受限时,会发生该异常,如一个字符分配给一个变量,而该变量声明的长度比该字符短,就会引发该异常

storage_error  ora-06500  -6500  内存溢出

zero_divide  ora-01476  -1476  除数为零

case_not_found  ora-06592  -6530  对于选择case语句,没有与之相匹配的条件,同时,也没有else语句捕获其他的条件

cursor_already_open  ora-06511  -6511  程序试图打开一个已经打开的游标

timeout_on_resource  ora-00051  -51  系统在等待某一资源,时间超时

如果要处理未命名的内部异常,必须使用OTHERS异常处理器或PRAGMA EXCEPTION_INIT 。PRAGMA由编译器控制,或者是对于编译器的注释。PRAGMA在编译时处理,而不是在运行时处理。EXCEPTION_INIT告诉编译器将异常名与ORACLE错误码结合起来,这样可以通过名字引用任意的内部异常,并且可以通过名字为异常编写一适当的异常处理器。

在子程序中使用EXCEPTION_INIT的语法如下:

PRAGMA EXCEPTION_INIT(exception_name, -Oracle_error_number);

在该语法中,异常名是声明的异常,下例是其用法:

  DECLARE
  deadlock_detected EXCEPTION;
  PRAGMA EXCEPTION_INIT(deadlock_detected, -60);
  BEGIN
  ... -- Some operation that causes an ORA-00060 error
  EXCEPTION
  WHEN deadlock_detected THEN
  -- handle the error
  END;

上一页  1 2 3 4 5  下一页

Tags:oracle exception

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接