DECLAREv_deptno emp.deptno%TYPE :=&deptno;v_sal    emp.sal%TYPE;v_empno  emp.empno%TYPE;
BEGINSELECT sal INTO v_sal FROM emp WHERE deptno= v_deptno;IF v_sal<=1500 THEN UPDATE emp SET sal=sal+100 WHERE empno=  v_empno; DBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'员工工资已更新!');     ELSEDBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'员工工资已经超过规定值!');END IF;
EXCEPTIONWHEN Dup_val_on_index THEN  DBMS_OUTPUT.PUT_LINE('数据库中没有编码为'||v_deptno||'的员工');WHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE(SQLCODE||v_deptno||SQLERRM);           ---1422返回多行WHEN NO_DATA_FOUND THEN             DBMS_OUTPUT.PUT_LINE(SQLCODE||v_deptno||SQLERRM);          --100表示NO_DATA_FOUND
END;
select * from dept            DECLAREv_deptno dept.deptno%TYPE :=&deptno;deptno_remaining EXCEPTION;PRAGMA EXCEPTION_INIT(deptno_remaining, 100);/* -2292 是违反一致性约束的错误代码 */
BEGINDELETE FROM dept WHERE deptno=v_deptno;
EXCEPTIONWHEN deptno_remaining THEN DBMS_OUTPUT.PUT_LINE('违反数据完整性约束!');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);  --sqlcode数据库返回的操作码   SQLERRM返回错误码信息     '程序运行错误!请使用游标'
END;  DECLAREv_deptno dept.deptno%TYPE :=&deptno;no_result  EXCEPTION;no_result1  EXCEPTION;deptno_remaining EXCEPTION;PRAGMA EXCEPTION_INIT(deptno_remaining, -2292);
BEGIN-- DELETE FROM dept WHERE deptno=v_deptno;UPDATE emp SET sal=sal+100 WHERE deptno=v_deptno;IF SQL%FOUND THENRAISE no_result;elsIF SQL%NOTFOUND THEN  RAISE no_result1;    END IF;EXCEPTIONWHEN no_result THENDBMS_OUTPUT.PUT_LINE(SQLCODE||'这是1'||SQLERRM);WHEN no_result1 THENDBMS_OUTPUT.PUT_LINE(SQLCODE||'这是2'||SQLERRM);    --1表示用户没有定义WHEN deptno_remaining THEN DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
END;Exceptionwhen osi_general_error thenDBMS_OUTPUT.PUT_LINE(SQLCODE||'这是1'||SQLERRM);when OTHERS THEN              DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');select* from empdeclarev_empno  emp.empno%type := &empno;v_ename emp.ename%type;   beginselect ename into v_ename from empwhere empno = v_empno;dbms_output.put_line(SQLCODE||'----'||v_ename);       --0表示没有异常exceptionwhen others thenraise_application_error(-20001 , 'emp'||v_empno||' does not exists');end;

  

转载于:https://www.cnblogs.com/wx1691790309/p/7234640.html

oracle 基本异常的练习及各个错误码相关推荐

  1. boot返回码规范 spring_SpringBoot自定义异常体系和错误码规范定义(个人经验总结)...

    前言 本文说的自定义异常指的是继承了RuntimeException,专门用于Spring全局异常捕获处理的自定义异常类型,需要应用程序显示捕获并处理的异常不在本次讨论范围内. 本随笔经验总结,如有不 ...

  2. oracle 作业 断开原因,解惑 | Oracle JOB 异常中断原因分析

    注释 今天研发同事找我确认 PKG_WMS.proc_TaskMain 存储的 job 是否还在运行,竟发现 dba_jobs.NEXT_DATE=4000/1/1. 如下看看究竟原因吧~ JOB 信 ...

  3. ORACLE JOB 失败 查看,Oracle JOB异常中断原因分析

    注释 今天研发同事找我确认 PKG_WMS.proc_TaskMain 存储的 job 是否还在运行,竟发现 dba_jobs.NEXT_DATE=4000/1/1,如下看看究竟原因吧~ JOB 信息 ...

  4. Oracle JOB异常中断原因分析

    链接:http://blog.itpub.net/28602568/viewspace-1731805/ 标题: Oracle JOB异常中断原因分析 作者:lōττéry©版权所有[文章允许转载,但 ...

  5. oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法

    oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法 win7 下   cmd  运行   sqlplus  ...

  6. oracle lms进程 内存,【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法...

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库10.2.0.4.12每间隔一段时间就必须重启,运行一断时间报ORA-04031错误oracle ges res cache l ...

  7. oracle异常抛出,ORACLE 存储过程异常捕获并抛出

    for tab_name in tables loop execute immediate 'drop table '||tab_name; --此处可能会报错 end loop; 当前情况是,循环表 ...

  8. oracle 错误码大全

    # 错误码 中文释义 英文释义 1 ORA-00001 违反唯一约束条件 (.) unique constraint (string.string) violated 2 ORA-00017 请求会话 ...

  9. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》

    关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...

最新文章

  1. 回车的ascii码_ASCII码表
  2. Visual Studio 2019更新到16.2.1
  3. 大数据量,海量数据 处理方法总结(转)
  4. QT的QFileInfo类的使用
  5. leetcode 218. 天际线问题
  6. Java与.Net 在RSA加密方面能不能互相通讯操作???
  7. 程序员的那点事(转自java老师李明志)
  8. 成都睿铂盘点无人机航测三个极端恶劣环境的人员与设备防护指南
  9. 一句话满速下载清华源3.4.1.15版本的opencv和contrib库
  10. 02- linux下运行.exe文件(wine工具)
  11. dumpDex脱壳教程
  12. vue 如何实现点击动态更新图形验证码
  13. 什么是蜘蛛池的搜索留痕技术
  14. CNN Tensorflow 入门——以Cifar-10为例
  15. 修炼内功——理解函数栈帧创建和销毁
  16. PRes 语言常用参考
  17. 二维火门店网盘v5.7.0绿色官方版
  18. CentOS7.5usb安装盘制作,解决linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x\86_64问题
  19. Vue项目中tinymce富文本的安装以及配置
  20. React框架课时二认识项目的结构目录一

热门文章

  1. RedLock实现原理
  2. Oracle根据年份分组
  3. Java中三种Set的实现类的用法和区别
  4. SpringCloud主要组件
  5. 电脑开机速度慢?新手试试以下这几个小技巧!
  6. 程序员进阶架构师路线
  7. 五种类型的程序员,你属于哪一种?
  8. 前端简洁并实用的工具类 (推荐收藏)
  9. linux kafka离线安装,centos 离线安装confluent_kafka 模块
  10. linux5.4无法远程,利用Xmanager_在RedHat5.4下实现Linux远程桌面