oracle教程22 异常错误处理(预定义异常处理、预定义异常列表)

约定不等于承诺〃 2022-05-27 05:57 289阅读 0赞

预定义异常处理

70

预定义异常的列表 :


















































































































错误号

异常错误信息名称

说明

ORA-00001 

DUP_VAL_ON_INDEX

试图破坏一个唯一性限制 

ORA-00051

TIMEOUT_ON_RESOURCE

在等待资源时发生超时

ORA-01001

INVALID_CURSOR 

试图使用一个无效的游标

ORA-01012 

NOT_LOGGED_ON

没有连接到ORACLE

ORA-01017

LOGIN_DENIED

无效的用户名及口令

ORA-01403 

NO_DATA_FOUND

SELECT INTO没有找到数据

ORA-01422 

TWO_MANY_ROWS

SELECT INTO 返回多行

ORA-01410

SYS_INVALID_ROWID

从字符串向ROWID转换发生错误

ORA-01476

ZERO_DIVIDE

数字值除零时触发的异常

ORA-01722

INVALID_NUMBER

转换一个数字失败

ORA-06500

STORAGE_ERROR

内存不够引发的内部错误

ORA-06501

PROGRAM_ERROR

存在PL/SQL内部问题

ORA-06502

VALUE_ERROR

转换或截断错误

ORA-06504

ROWTYPE_MISMATCH

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

 

ORA-06511

CURSOR_ALREADY_OPEN

游标已经打开

ORA-06530 

ACCESS_INTO_NULL

未定义对象

ORA-06531

COLLECTION_IS_NULL

集合元素未初始化 

ORA-06532

SUBSCRIPT_OUTSIDE_LIMIT

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

 

ORA-06533

SUBSCRIPT_BEYOND_COUNT

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

 

ORA-06592

CASE_NOT_FOUND

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

ORA-30625

SELF_IS_NULL

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

  1. --预定义异常处理
  2. DECLARE
  3. v_name emp.ename%TYPE;
  4. v_sal emp.sal%TYPE:=&salary;
  5. BEGIN
  6. SELECT ename INTO v_name FROM emp WHERE sal = v_sal;
  7. DBMS_OUTPUT.put_line(v_name||'的工资是:'||v_sal);
  8. EXCEPTION
  9. WHEN NO_DATA_FOUND THEN
  10. DBMS_OUTPUT.put_line('没有该工资的员工');
  11. WHEN TOO_MANY_ROWS THEN
  12. DBMS_OUTPUT.put_line('多个员工具有该工资');
  13. WHEN OTHERS THEN
  14. DBMS_OUTPUT.put_line('其他异常');
  15. END;

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Shell预定变量

    基本介绍 预定义变量是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用 基本语法 $$ 功能描述:当前进程的进程号(PID)

    相关 Unity 预定标签

    预定义标签 Script Define Symbols,编译器会在编译的时候根据预定义标签去生成对应的二进制编码。 点击导航栏菜单 -> Edit -> Project Se