oracle 基本异常的练习及各个错误码
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 基本异常的练习及各个错误码相关推荐
- boot返回码规范 spring_SpringBoot自定义异常体系和错误码规范定义(个人经验总结)...
前言 本文说的自定义异常指的是继承了RuntimeException,专门用于Spring全局异常捕获处理的自定义异常类型,需要应用程序显示捕获并处理的异常不在本次讨论范围内. 本随笔经验总结,如有不 ...
- oracle 作业 断开原因,解惑 | Oracle JOB 异常中断原因分析
注释 今天研发同事找我确认 PKG_WMS.proc_TaskMain 存储的 job 是否还在运行,竟发现 dba_jobs.NEXT_DATE=4000/1/1. 如下看看究竟原因吧~ JOB 信 ...
- ORACLE JOB 失败 查看,Oracle JOB异常中断原因分析
注释 今天研发同事找我确认 PKG_WMS.proc_TaskMain 存储的 job 是否还在运行,竟发现 dba_jobs.NEXT_DATE=4000/1/1,如下看看究竟原因吧~ JOB 信息 ...
- Oracle JOB异常中断原因分析
链接:http://blog.itpub.net/28602568/viewspace-1731805/ 标题: Oracle JOB异常中断原因分析 作者:lōττéry©版权所有[文章允许转载,但 ...
- oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法
oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法 win7 下 cmd 运行 sqlplus ...
- oracle lms进程 内存,【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法...
天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库10.2.0.4.12每间隔一段时间就必须重启,运行一断时间报ORA-04031错误oracle ges res cache l ...
- oracle异常抛出,ORACLE 存储过程异常捕获并抛出
for tab_name in tables loop execute immediate 'drop table '||tab_name; --此处可能会报错 end loop; 当前情况是,循环表 ...
- oracle 错误码大全
# 错误码 中文释义 英文释义 1 ORA-00001 违反唯一约束条件 (.) unique constraint (string.string) violated 2 ORA-00017 请求会话 ...
- 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...
最新文章
- 回车的ascii码_ASCII码表
- Visual Studio 2019更新到16.2.1
- 大数据量,海量数据 处理方法总结(转)
- QT的QFileInfo类的使用
- leetcode 218. 天际线问题
- Java与.Net 在RSA加密方面能不能互相通讯操作???
- 程序员的那点事(转自java老师李明志)
- 成都睿铂盘点无人机航测三个极端恶劣环境的人员与设备防护指南
- 一句话满速下载清华源3.4.1.15版本的opencv和contrib库
- 02- linux下运行.exe文件(wine工具)
- dumpDex脱壳教程
- vue 如何实现点击动态更新图形验证码
- 什么是蜘蛛池的搜索留痕技术
- CNN Tensorflow 入门——以Cifar-10为例
- 修炼内功——理解函数栈帧创建和销毁
- PRes 语言常用参考
- 二维火门店网盘v5.7.0绿色官方版
- CentOS7.5usb安装盘制作,解决linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x\86_64问题
- Vue项目中tinymce富文本的安装以及配置
- React框架课时二认识项目的结构目录一