Oracle用户自定义异常实现过程解析
注意:普通的查询语句不会出现异常,只有使用into对变量进行赋值的时候才会发生异常
--系统变量: notfound --> if sql%notfund then 如果这个表达式为真,则 (增删改)出错 --,先自定义一个异常:no_result exception -- if sql%nofund then --excetpion --when no_result then --dbms……
用户自定义异常写在:declare里,如:
set serveroutput on declare no_result exception; --自定义异常 v_ssid student_test.sid%type;
begin update student_test set sex='男' where sid=1000002; --没有异常,报(自定义异常)插入为空的错误 if SQL%NOTFOUND then RAISE no_result; end if; exception when no_result then dbms_output.put_line('修改有误!'); when dup_val_on_index then dbms_output.put_line('系统异常,违反主键约束'); end;
如果修改语句修改为空,系统不会报错,但会直接进入用户自己定义的no_result异常里,
if SQL%NOTFOUND then RAISE no_result; end if;
SQL%NOTFOUND是检查更新语句是否更新成功,如果更新失败,则notfound语句为真,
则使用raise语句跳转到no_result异常执行。
(dup_val_on_index)异常是系统异常,如果使用插入语句并且违反主键唯一性约束,则执行dup_val_on_index异常。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
使用Python脚本zabbix自定义key监控oracle连接状态
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1.zabbix_get用法 2.python中cx_Oracle模块使用 ------------------------------------------------------------------------------ 1.zabbix_get用法 常用用法 zabbix_get -s h
-
Oracle用decode函数或CASE-WHEN实现自定义排序
1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字.时间.字符串等都有自己默认的排序规则.有时候需要按自己的想法来排序,而不是按字段默认排序规则. 比如字段值为英文字段:Monday.Tuesday.Wednesday等,如果按字段默认排序规则就为: Friday Monday Saturday Sunday Thursday Tuesday Wednesday 实际我需要的是: Monday Tuesday W
-
详解Oracle自定义异常示例
1.弹出错误框: 示例代码: declare v_count number; begin select count(*) into v_count from dept; if v_count < 10 then raise_application_error(-20001,'数量小于10'); end if; end; 执行结果: 2.控制台显示: 示例代码: declare v_count number; my_exp exception; begin select count(*) into
-
Oracle将查询的结果放入一张自定义表中并再查询数据
如下的实际例子代码可以将查询的结果放入到一张自定义表中,同时可以再从这个自定义的表中查询数据: with AA as (SELECT TICKETNUMBER, TICKETTYPE, VERSIONNUMBER, STAGENAME, DTANALYZED, GISPROCESSID, PROCESSSTATUS, DTRECEIVED, USERID, USERNAME, FIRSTNAME, LASTNAME, NUMBEROFDAYS FROM REPORT_PERFORMANCEOFA
-
ORACLE实现自定义序列号生成的方法
实际工作中,难免会遇到序列号生成问题,下面就是一个简单的序列号生成函数 (1)创建自定义序列号配置表如下: --自定义序列 create table S_AUTOCODE ( pk1 VARCHAR2(32) primary key, atype VARCHAR2(20) not null, owner VARCHAR2(10) not null, initcycle CHAR(1) not null, cur_sernum VARCHAR2(50) not null, zero_flg VAR
-
oracle异常(预定义异常,自定义异常)应用介绍
在开发过程中,经常会遇到一些测试,这时候就会想了解测试的过程,然后再根据过程分析代码错在哪里,这种情况下,就需要用到自定义异常,需要了解的朋友可以参考本文 先声明一个异常 Java代码 biz_exception exception; 再抛出来 Sql代码 复制代码 代码如下: p_RETCODE := '-1'; p_retInfo := '已生成工资+社保类型账单,请不要重复生成.'; raise biz_exception; 这样存储过程就走到最后的抓取异常地方 Sql代码 复制代码 代码
-
Oracle自定义脱敏函数的代码详解
对于信息安全有要求的,在数据下发和同步过程中需要对含有用户身份信息的敏感字段脱敏,包括用户姓名.证件号.地址等等,下面是自定义函数的代码 CREATE OR REPLACE FUNCTION F_GET_SENSITIVE(IN_STR VARCHAR, IN_TYPE NUMBER) RETURN VARCHAR2 IS V_STR_LENGTH NUMBER; V_NAME VARCHAR2(1000); V_N NUMBER; V_HID VARCHAR2(200); V_SQL VARC
-
Oracle 自定义split 函数实例详解
Oracle 自定义split 函数 Oracle没有提供split函数,但可以自己建立一个函数实现此功能.比如"abc defg hijkl nmopqr stuvw xyz",分隔符是空格,但空格个数不定. 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION fn_var_split ( p_str IN VARCHAR2,
-
Oracle用户自定义异常实现过程解析
注意:普通的查询语句不会出现异常,只有使用into对变量进行赋值的时候才会发生异常 --系统变量: notfound --> if sql%notfund then 如果这个表达式为真,则 (增删改)出错 --,先自定义一个异常:no_result exception -- if sql%nofund then --excetpion --when no_result then --dbms-- 用户自定义异常写在:declare里,如: set serveroutput on declare
-
springboot自定义异常视图过程解析
这篇文章主要介绍了springboot自定义异常视图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.源码分析 先看源码再写自己的自定义异常视图 resolveErrorView()函数首先调用了一个返回ModelAndView的函数,该函数所需的参数是一个状态码的字符串,和一个map集合,该集合是错误信息 也就是下图这个函数 上图函数判断你是否提供了templates/error/下的动态错误页 如果提供了直接返回视图名和错误信息
-
django创建超级用户过程解析
这篇文章主要介绍了django创建超级用户过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 终端输入 python3 manage.py createsuperuser 按照提示进行操作即可 不输入用户名会给你默认一个用户名,输入密码是在原处不动的,其实已经在输入了. 创建超级用户是为了能够登陆admin账户给数据库中添加数据. 需要添加数据的表格要放在admin里 from django.contrib import admin # R
-
Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为"1,2,3,5",字段B为"2". 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5. 一.最终实现的sql语句 1.获取交集(相同值): select regexp_substr(id, '[^,]+', 1, rownum) id from (select '1,2,3,5' id from dual) connect by rownum <= length(reg
-
Springboot2.0自适应效果错误响应过程解析
这篇文章主要介绍了Springboot2.0自适应效果错误响应过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 实现效果当访问thymeleaf渲染页面时,显示的是自定义的错误页面 当以接口方式访问时,显示的是自定义的json数据响应 1. 编写自定义异常 package cn.jfjb.crud.exception; /** * @author john * @date 2019/11/24 - 9:48 */ public class
-
oracle常见故障类别及规划解析
前言: 上一篇文章中我们了解了oracle分区索引的失效和重建代码示例的相关内容,接下来我们要看的内容是: 对任何数据库系统而言,对显而易见的故障,应当避免发生本文列出了Oracle常见的故障并给出了解决方案,同时列出了一些日常规划. 一.数据库高可用性的几个目标 MTBF(Mean-Time-Between-Failures) 平均失败时间,即数据库出现失败的频繁度,应尽可能增大该值 应对措施 RAC集群技术:位于多台计算机上的多个实例打开一个物理数据库,降低因一个或多实
-
oracle数据库导入导出命令解析
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远.
-
在命令行下进行Oracle用户解锁的语句
在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是被锁定的,先解锁就能登陆上了. 使用下面的语句解锁scott: 复制代码 代码如下: alter user scott account unlock; 解锁之后可能会要求你该密码: 复制代码 代码如下: alter user scott identified by tiger; 再登陆: 复制代码
-
Oracle用户密码过期和用户被锁的解决方法
今天正在上班的过程中,客户反映了他们的系统登录不了,经过我的一番检查,发现是因为数据库密码过期导致的,在网上查找相关资料发现还真有此种情况发生,在此顺便做了个整理,以便共同交流! 产生原因: 在oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 在oracle11g中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 解
-
Oracle用户密码含有特殊字符导致无法登陆解决方法
今天碰到一个比较奇怪的问题: 在客户端上使用sqlplus用普通用户可以登录,但是system以及sys用户均无法登录,提示ORA-12154: TNS: 无法解析指定的连接标识符 SQL> conn system@webdata 输入口令: ERROR: ORA-12154: TNS: 无法解析指定的连接标识符 SQL> conn xgplat@webdata 输入口令: 已连接. 本来以为客户端是32位的缘故,就在oracle服务器上用sqlplus登录,也还是一样 SQL> con
随机推荐
- Tomcat实现session共享(session 会话复制)
- iOS CAReplicatorLayer实现脉冲动画效果
- Perl遍历目录和使用Linux命令分析日志的代码实例分享
- Python实现简单多线程任务队列
- TreeView创建IHierarchicalDataSource类型的数据源实现
- php实现的DateDiff和DateAdd时间函数代码分享
- CI框架学习笔记(一) - 环境安装、基本术语和框架流程
- JSP实用教程之简易文件上传组件的实现方法(附源码)
- c++编写简单的计算器程序
- 轻松学习C#的属性
- MySql批量插入优化Sql执行效率实例详解
- 编程语言JavaScript简介
- 为Python的Tornado框架配置使用Jinja2模板引擎的方法
- SQL Server误区30日谈 第25天 有关填充因子的误区
- js实现单张图片平移切换效果
- 使用变量动态设置js的属性名
- JavaScript中用于生成随机数的Math.random()方法
- 微信小程序 页面传参实例详解
- Android通过Movie展示Gif格式图片
- 网络管理之共享式以太网