Oracle触发器中select into 报错no_data_found异常处理

红色部分为对查询不到数据异常的处理

create or replace trigger TIG_MONITOR_ALARM

after insert on t_monitor_real_minute

for each row

declare

-- 标准值

standvalue number;

--报警实况表id

liveid number;

begin

--

--触发器功能:监测实况数据表,,对比监测数据是否超标,超标数据则记录入超标报警表中

--

standvalue:=-1;

liveid:=-1;

select nvl(t.bzz,-1) into standvalue from t_monitor_factor t where t.jcdbm=:new.STATION_ID and t.jcxmbm=:new.INFECTANT_ID;

--如果录入检测项目数据大于标准值,则入库报警信息表中

if standvalue>-1 then

if :new.M_VALUE>standvalue then

--将数据录入报警历史数据中

insert into t_alarm_history(id,jcdbm,jcxmbm,mvalue,mtime)

values(SEQ_ALARM_HISTORY.NEXTVAL,:new.STATION_ID,:new.INFECTANT_ID,:new.M_VALUE,:new.M_TIME);

--异常判断,如果查询不到数据

begin

select r.id into liveid from t_alarm_real r where r.jcdbm=:new.STATION_ID and r.jcxmbm=:new.INFECTANT_ID;

--查询不到数据

EXCEPTION

WHEN no_data_found THEN

--不存在则录入新的报警实况

insert into t_alarm_history(id,jcdbm,jcxmbm,mvalue,mtime)

values(SEQ_ALARM_REAL.NEXTVAL,:new.STATION_ID,:new.INFECTANT_ID,:new.M_VALUE,:new.M_TIME);

end;

--报警实况中是否已存在该监测点的该因子报警信息

if liveid>-1 then

update t_alarm_real r1 set r1.mvalue=:new.M_VALUE,r1.mtime=:new.M_TIME,r1.status=0 where r1.id=liveid;

else

--不存在则录入新的报警实况

insert into t_alarm_history(id,jcdbm,jcxmbm,mvalue,mtime)

values(SEQ_ALARM_REAL.NEXTVAL,:new.STATION_ID,:new.INFECTANT_ID,:new.M_VALUE,:new.M_TIME);

end if;

end if;

end if;

EXCEPTION

WHEN no_data_found THEN

null;

end TIG_MONITOR_ALARM;

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

oracle触发器 select into,Oracle触发器中selectinto报错no_data_found异常处理相关推荐

  1. Oracle EBS 资产重分类API fa_reclass_pub.do_reclass报错

    Oracle EBS 资产重分类API   fa_reclass_pub.do_reclass报错 提示: 数据待处理必须至少在资产所属折旧帐簿中的一个帐簿中定义新类别 The New Categor ...

  2. Oracle修改varchar类型为clob时,报错:ORA-22858

    Oracle直接将varchar2修改为clob会报错,因此可使用以下方式进行修改: 举例:你的表名:TableName 需要修改的字段:name 辅助的字段:name_up alter table ...

  3. 搭建ADG过程中复制报错 RMAN-03009 ORA-03113

    搭建ADG过程中复制报错 RMAN-03009 ORA-03113 猜测主备之间网络路由过多导致... 开启mrp进程报错 发现数据文件是主库ASM的路径,备库是单机的 switch database ...

  4. java ora 00911_java中 jdbc报错 ORA-00911: 无效字符

    java中 jdbc报错 ORA-00911: 无效字符 关注:196  答案:4  mip版 解决时间 2021-02-06 00:32 提问者不在服务区的爱 2021-02-05 19:37 Co ...

  5. python2中的unicode_python2中的unicode()函数在python3中会报错:

    python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is not defined There is no such name in P ...

  6. IDEA快捷键及xml文件中网址报错

    Alt+Shift+Tab 切换窗口(从后往前) div+Tab             补全为         <div></div> #box+Tab           ...

  7. 在 vCenter Server 中出现报错:虚拟机无法进入受 vSphere HA 保护的状态 (2020082)

    在 vCenter Server 中出现报错:虚拟机无法进入受 vSphere HA 保护的状态 (2020082) https://kb.vmware.com/s/article/2020082?l ...

  8. Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法

    Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决方法 参考文章: (1)Maven 手动安装JAR包到本地maven仓库后,但在项目中依旧报错找不到JAR包解决 ...

  9. SpringBoot中@Email报错解决

    SpringBoot中@Email报错解决 JSR303校验相关 现象:在springboot中使用@Email注解进行数据校验时,报没有该注解的错误. 解决方法: 在pom.xml中加该配置 < ...

最新文章

  1. PEP8 Python
  2. Tomcat:Connection reset by peer: socket write error
  3. Eclipse基本使用
  4. 简单案例:unittest+HTMLTestRunner实现生成测试报告
  5. Linux Kernel 4.20 生命周期已结束,建议迁移 5.0
  6. 机器学习——图解SVM中gamma和c参数的作用
  7. lvs mysql 端口_LVS配置及多端口服务配置
  8. linux jobs继续运行,Linux jobs等前后台运行命令详解
  9. UICollectionViewCell的设置间距
  10. 1006. Sign In and Sign Out (25)-PAT甲级真题
  11. 在c语言中字母是几个字节的,在c语言中int占几个字节
  12. Excel潜能系列——Excel游戏 2048
  13. 通俗理解逻辑删除和物理删除的区别
  14. 联想a30微型计算机,TEP-I-G W13030123 监控模块,监控单元泰坦TEP-I系列微机监控装置...
  15. 深度学习入门(五) softmax回归
  16. BI相关的内容---BI是什么,主要工作的内容有哪些?
  17. Laravel项目部署到线上需要注意的一些问题
  18. 邮件发送-JavaWeb
  19. eclipse中向svn提交代码冲突的解决
  20. Redis修改端口号后无法连接的问题

热门文章

  1. Windows10+PicGo+七牛云+Typora搭建写作环境与图床
  2. 104. 软件工程的开发过程几种模型(瀑布模型、快速原型开发模型、增量模型、迭代模型、螺旋模型)
  3. 安卓车机root改流浪地球_教你王者荣耀改战区
  4. Visual Studio Code (VSCode) 之 C/C++ 调试配置详解
  5. python模块搜索原则_详解python模块路径查找规则及定义
  6. vant 做表格_Vant List 列表
  7. c# html 后台拼_c#编写html后台
  8. 百度ERNIE新突破,登顶中文医疗信息处理权威榜单CBLUE冠军
  9. CDN边缘JavaScript敏捷交付实践
  10. jedis set集合 java,使用Jedis操作String、List、Set、Map等常见数据 | zifangsky的个人博客...