Oracle之例外(异常)

/*
   例外  其实就是异常
         处理发生的异常
         java try{}catch(OutofBoundIndexException){}catch(Exception e){}
         数据库对异常的处理
         exception
             when 异常类型 then
                 处理语句
         数据库异常分类  运行时异常 编译时异常 ClassCast ClassNotFound
                  系统定义异常
                      除数为0
                      赋值错误  类型转换错误
                     
                  自定义异常
                     使用场景:是不满足某些特定业务场景
                     java new 自定义类 继承Exception errorCode errorMsg
                  数据库
                     dept_no_emp  exception  --声明变量 类型为异常类型
                     raise dept_no_emp
       
*/
--除数为零  zero_divide
--类型转换  把字符串赋值给数值
declare
   v_n number :=0;
   v_m number :=1;
begin
   v_n := 'ss';
   v_m:=v_m/v_n;
exception
   when value_error   then
      dbms_output.put_line('赋值错误');
   when zero_divide   then
      dbms_output.put_line('除数不能为0');
   when others   then    --others 代表最大范围的异常  Exception
     dbms_output.put_line('出现异常');
end;

--太多记录数
declare 
     emp_row   emp%rowtype;     --记录类型变量
begin 
     select * into emp_row from emp;   
exception
    when too_many_rows then
      dbms_output.put_line('太多记录数请使用游标');
end;
---自定义异常 数据库不报错 不满足业务场景
--使用游标查询40号部门的员工信息 如果没有员工提示我 招人
declare
    cursor emp_cursor(dno number) is select * from emp where deptno=dno;  --声明游标
    emp_row emp%rowtype; --记录类型用于接收游标提取
    dept_no_emp exception; --声明自定义异常
begin
    open emp_cursor(40); --打开游标
    fetch emp_cursor into emp_row;  --保证先提取再判断
    if emp_cursor%notfound then 
      --没有员工 抛出异常
      raise dept_no_emp;
    end if;
    close emp_cursor;--关闭游标
exception
    when dept_no_emp then
      dbms_output.put_line('部门没有员工,快点招人');
end;

转载于:https://www.cnblogs.com/flyuphigh/p/8072205.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android2.2查看svn历史提交记录

一开始时是没有显示历史提交记录的,方法很简单 VCS--Subversion--ShowHistory,之后在下面的Version control就会显示“History-项目名”这个栏目,在这个栏目下面就可以查看提交的历史记录了 方法2: 对文件夹点右键,点击TortoiseS…

工作194:vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: ‘/system‘. This may cause an

错误如下 拿到公司一个小哥哥的代码&#xff0c;一来就报了一堆bug&#xff0c;吓得我先写一篇博客vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: /system. This may cause an update error.found in---> <Sidebar> at src/layout/components/S…

STM32 RS485 和串口 只能接收不能发送问题解决

串口 发送引脚要配置输出频率 否则配置不成功&#xff0c;导致只能接受不能发送转载于:https://www.cnblogs.com/yekongdexingxing/p/8078936.html

echarts我常用的参数总结

1、 progressive 表示ECharts渐进式渲染时每一帧绘制图形数量&#xff0c;设为 0 时不启用渐进式渲染&#xff0c;支持每个系列单独配置。 在图中有数千图形甚至好几万图形的时候&#xff0c;一下子把图形绘制出来&#xff0c;或者交互重绘的时候可能会造成界面的卡顿甚至假死…

Android 折叠头部监听,抽屉式动画

实现方法2&#xff1a;https://blog.csdn.net/meixi_android/article/details/84136375 1、自定义scrollview,监听上下滑动距离&#xff1a; public class ScrollListenerView extends ScrollView {private ScrollListener scrollViewListener null;public ScrollListenerVie…

工作195:解决key值不唯一的报错

<!--投放权限--><!--获取投放权限的数据--><el-form-item label"投放权限" :label-width"formLabelWidth"><el-selectv-model"form.publish_permission"multipleplaceholder"请选择投放权限"><el-option v…

POJ1459 Power Network —— 最大流

题目链接&#xff1a;https://vjudge.net/problem/POJ-1459 Power NetworkTime Limit: 2000MS Memory Limit: 32768KTotal Submissions: 29270 Accepted: 15191Description A power network consists of nodes (power stations, consumers and dispatchers) connected by power…

Python 异步操作文件 aiofiles

# 异步文件操作 # pip install aiofiles# 基本用法 import asyncio import aiofilesasync def wirte_demo():# 异步方式执行with操作,修改为 async withasync with aiofiles.open("text.txt","w",encoding"utf-8") as fp:await fp.write("h…

工作196:注意接收数据的格式

<!--获取投放权限的数据--><el-form-item label"投放权限" :label-width"formLabelWidth"><el-selectv-model"form.publish_permission"multipleplaceholder"请选择投放权限"><el-option v-for"(publish,in…

uvicorn 更改fastapi 运行host和port

在命令行输入uvicorn --help可以显示参数介绍&#xff0c;主要两个参数: --host TEXT Bind socket to this host. [default:127.0.0.1] --port INTEGER Bind socket to this port. [default: 8000]所以运行命令可以改成&#xff1a; uvicorn …

mysql问题处理积累

1.mysql errors:message from server: "Host xxx is blocked because of many connection errors; unblock 数据库连接抛了异常&#xff1a;null, message from server: "Host PC-20130201IBXI is blocked because of many connection errors; unblock with mysqlad…

Android PopupWindow使用,下拉式PopupWindow,底部式PopupWindow

1、实现方法1 仿微信盆友圈弹出点赞、评论 demo连接&#xff1a;android开发PopupWindow实现跟随试弹出框-Android文档类资源-CSDN下载 实现步骤 1、下载module并引入项目 引入module步骤&#xff1a;Android studio 导入module方法…

工作197:判断对象里面是否有0和1

<el-form-item v-if"property.includes(0)" prop"business_module" label"所属栏目" :label-width"formLabelWidth"><!--注意用户的返回值--><el-select v-model"form.business_module" placeholder"…

Python __call__()方法

Python 类中一个非常特殊的实例方法&#xff0c;即 call()。该方法的功能类似于在类中重载 () 运算符&#xff0c;使得类实例对象可以像调用普通函数那样&#xff0c;以“对象名()”的形式使用。 举个例子&#xff1a; class CLanguage:# 定义__call__方法def __call__(self,n…

Android 微信登录

/1、首先你得到微信.开放平台申请开发权限&#xff1a;https://open.weixin.qq.com/ 申请通过效果如下即可 2、其次&#xff0c;阅读开发文档&#xff1a; https://open.weixin.qq.com/cgi-bin/showdocument?actiondir_list&tresource/res_list&verify1&idopen1…

解决ubuntu16.04 qt5.9.1无法输入中文

1. 安装 fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 2. 确认该路径下存在的文件 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so 3. 将libfcitxplatforminputcontextplugin.so 复制到以下两个路径下&…

工作198:无法选中的状态一定要绑定在select上面

<el-form-item prop"department_id" label"所属部门" :label-width"formLabelWidth"><select-form change"DepartmentList" v-model"form.department_id" /></el-form-item><el-form-item v-show&quo…

惊天大神坑 关于 python-socketio 与 socket.io-client 版本兼容问题

在使用fastapi进行开发中&#xff0c;使用python-socketio作为socketi库&#xff0c;前端项目使用vue开发&#xff0c;配合socket.io-client作为client端。 我的python-socketio版本号为4.6.0 前端socket.io-client我默认安装的最新的&#xff0c;此时最新的是3.0.4,但是发现…

vscode 1.9.11 和pycharm 5.0.4 输入os.getcwd()后输出不相同

各位&#xff0c;vscode的坑&#xff1b; os.getcwd()获取当前文件的位置 例如文件目录级&#xff1a; g:\test\123 vscode 输出的是父目录的位置 实际输出的结果为&#xff1a;g:\test 预期结果:g:\test\123&#xff08;这个才是正确的&#xff09; pycharm os.getcwd() 输出…

Bitmap添加文字水印

private static Bitmap AddTimeWatermark(Bitmap mBitmap) {//获取原始图片与水印图片的宽与高int mBitmapWidth mBitmap.getWidth();int mBitmapHeight mBitmap.getHeight();Bitmap mNewBitmap Bitmap.createBitmap(mBitmapWidth, mBitmapHeight, Bitmap.Config.ARGB_8888)…