Oracle触发器写法和举例[通俗易懂]

Oracle触发器写法和举例[通俗易懂]1、declare声明变量后的每个变量都要加分号;2、所有的语句结束和sql语句结尾,都要加分号;3、变量赋值variable:=’1234’如:recordId:=’1234′;4、插入列数据获取:new.colname如:new.exec_record_id5、sql查询写入变量selectcolnameintovariable如:sel…

大家好,又见面了,我是你们的朋友全栈君。

1、declare 声明变量后的每个变量都要加分号;
2、所有的语句结束和sql语句结尾,都要加分号;
3、变量赋值 variable :=’1234′
   如:recordId := ‘1234’;
4、插入列数据获取 :new.colname 
   如:new.exec_record_id
5、sql查询写入变量 select colname into variable
   如: select verify_date into execDate   from orders_executed_record where record_id=’1234′;

 

触发器举例:

CREATE OR REPLACE TRIGGER "TR_NUTRITION"
 after update on inp_bill_detail
  for each row
declare
    myexp exception;
    execDate date;
    recordId varchar2(30);
begin
    recordId :=:new.exec_record_id;
    if :new.exec_record_id is not null then
        select nvl(oen.verify_date,oer.execute_date_time) into execDate
        from orders_executed_record oer left join orders_executed_nutrition oen on oer.record_id=oen.record_id
        where oer.record_id = recordId ;
        if execDate is not null then
           raise myexp;
         end if;
    end if;
    exception
        when myexp then raise_application_error('-20002', '计费后,执行(核对)日期不能为空,计费ID=' || :new.detail_no || ' 执行ID=' || recordId);
end ;

   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159865.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于matlab的语音信号频谱分析_声音信号的数字化过程

    基于matlab的语音信号频谱分析_声音信号的数字化过程1.概述随着软硬件技术的发展,仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向[1]。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析仪等[2]。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能的飞速发展,已把传

    2022年8月11日
  • 关于CPU编程—无锁编程

    关于CPU编程—无锁编程Lock-free算法通常比基于锁的算法要好:从其定义来看,它们是wait-free的,可以确保线程永远不会阻塞。状态转变是原子性的,以至于在任何点失败都不会恶化数据结构。因为线程永远不会阻塞,所以当同步的细粒度是单一原子写或比较交换时,它们通常可以带来更高的吞吐量。在某些情况下,lock-free算法会有更少的同步写操作(比如Interlocked操作),因此纯粹从性能

    2022年6月1日
  • 大话重构7:重构是一系列的等量变换

    大话重构7:重构是一系列的等量变换

    2022年1月31日
  • babel转换es6_ideamaven依赖配置

    babel转换es6_ideamaven依赖配置用Babel-cli将ES6转ES5一、为什么要转ES5   虽然ES6非常好用,但并不是所有浏览器所有客户端都适应ES6的,降成ES5是为了更强的使用性。二、安装转换工具babel-cli1.第一步初始化文件夹(如果已经有package.json文件说明已经初始化过了,可以跳过)右键在文件夹在终端中打开,输入命令npminit-y或者cnpminit-y2.在终端继续输入命令cnpminstall–globalbabel-cli安装ba

    2022年9月16日
  • python标识符以什么开头_哪个不是python合法标识符

    python标识符以什么开头_哪个不是python合法标识符python标识符命名规范介绍发布时间:2020-05-2311:03:48来源:亿速云阅读:146作者:Leahpython的标识符是什么?怎样命名?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识…

    2022年9月9日
  • CMD查看端口占用情况,8080端口被TIM占用了「建议收藏」

    CMD查看端口占用情况,8080端口被TIM占用了「建议收藏」CMD查看端口占用情况,8080端口被TIM占用了安装新版本dubboAdmin的时候,启动后端项目dubbo-admin-server报一下错误:org.apache.catalina.LifecycleException:Protocolhandlerstartfailed atorg.apache.catalina.connector.Connector.startInternal(Connector.java:1008) atorg.apache.catalina.util.Li

    2022年5月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号