1. CREATE
  2. TRIGGER FUEL.HDGJcoaldayexpend1_insertTRIGGER AFTER
  3. INSERT
  4. ON
  5. FUEL.coaldayexpend1 REFERENCING NEW AS new FOR EACH ROW MODE DB2SQL
  6.  
  7. begin atomic
  8.  
  9. declare expDate TIMESTAMP ; declare plantCode VARCHAR(32) ;
  10. declare powerQuan DOUBLE ; declare heatQuan DOUBLE ; declare netQuan DOUBLE ;
  11. declare beltQuan DOUBLE ; declare beltAdjustQuan DOUBLE ; declare powerExpQuan
  12. DOUBLE ; declare heatExpQuan DOUBLE ; declare otherExpQuan DOUBLE ; declare
  13. scheduleQuan DOUBLE ; declare remark VARCHAR(512); declare status VARCHAR(16) ;
  14. declare operateDate TIMESTAMP ; declare operator VARCHAR(50) ; declare
  15. expDateChar VARCHAR(32) ; declare operateDateChar VARCHAR(32) ; declare xml_id
  16. BIGINT;
  17. SET
  18. ( expDate,
  19. plantCode,
  20. powerQuan,
  21. heatQuan,
  22. netQuan,
  23. beltQuan,
  24. beltAdjustQuan,
  25. powerExpQuan,
  26. heatExpQuan,
  27. otherExpQuan,
  28. scheduleQuan,
  29. remark,
  30. status,
  31. operateDate,
  32. operator ) = ( new.expDate,
  33. new.plantCode,
  34. new.powerQuan,
  35. new.heatQuan,
  36. new.netQuan,
  37. new.beltQuan,
  38. new.beltAdjustQuan,
  39. new.powerExpQuan,
  40. new.heatExpQuan,
  41. new.otherExpQuan,
  42. new.scheduleQuan,
  43. new.remark,
  44. new.status,
  45. new.operateDate,
  46. new.operator );
  47. if ( expDate IS null ) then
  48. SET
  49. expDateChar = '' ; else
  50. SET
  51. expDateChar = char(date(expDate)) ;
  52. end if ;
  53.  
  54. if ( plantCode IS null ) then
  55. SET
  56. plantCode = '' ; end if ;
  57.  
  58. if ( remark IS null ) then
  59. SET
  60. remark = '' ; end if ;
  61.  
  62. if ( status IS null ) then
  63. SET
  64. status = '' ; end if ;
  65.  
  66. if ( operateDate IS null ) then
  67. SET
  68. operateDateChar = '' ; else
  69. SET
  70. operateDateChar = char(date(operateDate))||' '||char(time(operateDate));
  71. end if ;
  72.  
  73. if ( operator IS null ) then
  74. SET
  75. operator = '' ; end if ;
  76.  
  77. if NOT exists(
  78. SELECT
  79. xml_id
  80. FROM
  81. fuel.jt_hdgj
  82. WHERE
  83. tablename = 'coaldayexpend1' AND
  84. hdgj_id = char(new.id)) then
  85.  
  86. INSERT
  87. INTO platform.DATA_COALDAYEXPEND1(timemark,
  88. itemid,
  89. datadetail)
  90. VALUES
  91. (char(current date) || ' '||char( current time ),
  92. plantCode,
  93. '<CoalDayExpendLiang> <expDate>'||expDateChar||'</expDate>
  94. <plantCode>'||plantCode||'</plantCode>
  95. <powerQuan>'||fuel.doutochar(powerQuan)||'</powerQuan>
  96. <heatQuan>'||fuel.doutochar(heatQuan)||'</heatQuan>
  97. <netQuan>'||fuel.doutochar(netQuan)||'</netQuan>
  98. <beltQuan>'||fuel.doutochar(beltQuan)||'</beltQuan>
  99. <beltAdjustQuan>'||fuel.doutochar(beltAdjustQuan)||'</beltAdjustQuan>
  100. <powerExpQuan>'||fuel.doutochar(powerExpQuan)||'</powerExpQuan>
  101. <heatExpQuan>'||fuel.doutochar(heatExpQuan)||'</heatExpQuan>
  102. <otherExpQuan>'||fuel.doutochar(otherExpQuan)||'</otherExpQuan>
  103. <scheduleQuan>'||fuel.doutochar(scheduleQuan)||'</scheduleQuan>
  104. <status>'||status||'</status> <remark>'||remark||'</remark>
  105. <operateDate>'||operateDateChar||'</operateDate>
  106. <operator>'||operator||'</operator> </CoalDayExpendLiang> ');
  107. SET
  108. (xml_id) = (
  109. SELECT
  110. identity_val_local()
  111. FROM
  112. sysibm.sysdummy1) ;
  113. INSERT
  114. INTO fuel.jt_hdgj(tablename,
  115. xml_id,
  116. hdgj_id)
  117. VALUES
  118. ('coaldayexpend1',
  119. xml_id,
  120. to_char(new.id)); end if;
  121.  
  122. if(exists(
  123. SELECT
  124. *
  125. FROM
  126. FUEL.PICOALPROCESSSTATUS
  127. WHERE
  128. TABLENAME='COALDAYEXPEND1' AND
  129. PKID= new.id )) then
  130. UPDATE
  131. FUEL.PICOALPROCESSSTATUS
  132. SET
  133. LAST_UPDATE_DATE=new.LAST_UPDATE_DATE ,
  134. PROCESSTIME=new.LAST_UPDATE_DATE
  135. WHERE
  136. TABLENAME='COALDAYEXPEND1' AND
  137. PKID= new.id ; else
  138. INSERT
  139. INTO FUEL.PICOALPROCESSSTATUS (TABLENAME,
  140. PKID,
  141. PROCESS,
  142. LAST_UPDATE_DATE,
  143. PROCESSTIME)
  144. VALUES
  145. ('COALDAYEXPEND1',
  146. new.id,
  147. '已处理',
  148. new.LAST_UPDATE_DATE,
  149. new.LAST_UPDATE_DATE); end if; END

触发器SQL的更多相关文章

  1. Oracle生成多表触发器sql

    --将所有HY开头的表都生成一个更新触发器的脚本('/'是为了连续创建多个触发器而不报错)select 'CREATE OR REPLACE TRIGGER '||table_name||' BEFO ...

  2. SQL Server触发器

    一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...

  3. SQL Server DDL触发器运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) DDL运用场景(DDL Scene) ...

  4. SQL Server 触发器创建、删除、修改、查看示例

    一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...

  5. oracle PL/SQL(procedure language/SQL)程序设计之触发器(trigger)

    创建触发器 触发器类似于过程和函数,都拥有声明.执行和异常处理过程的带名PL/SQL块.与包类似,触发器必须存储在数据库中.前面已经讲过,过程是显式地通过过程调用执行的,同时过程调用可以传递参数.与之 ...

  6. SQL Server 数据库DML触发器 【一】

    今天学习SQL Server数据库中DML触发器(DDL触发器以后有时间继续学习). 当删除一条创建有触发器的表中的内容时,触发器执行SQL语句. 1.首相先创建一张表,表名称是 [Test] , 内 ...

  7. SQL Server 存储过程、触发器、游标

    存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...

  8. SQL之trigger(触发器)

    先来看一小段程序 有如下三张表: 帐户(编号,姓名,余额,建立日期,储蓄所编号) 储蓄所(编号,名称,地址,人数,所属城市) 借贷(帐户,借贷类型,金额,日期) create trigger tri_ ...

  9. SQL入门(3):定义约束/断言assertion/触发器trigger

    本文介绍数据库的完整性 完整性控制程序: 指定规则,检查规则 (规则就是约束条件) 动态约束 intergrity constraint::=(O,P,A,R) O : 数据集合, 约束的对象 ?: ...

随机推荐

  1. 2.5配置的框架浅析「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 配置的使用流程 //第一步.初始化Builder var builder = new ConfigurationB ...

  2. 浅谈Linux基本命令

    本篇文章作为Linux 入门的必备篇,主要简述Linux系统目录结构和Linux 基本Shell命令,大致内容如下: ​ 一  Linux目录及其概述 如下目录为CentOS 7目录结构 ​ 1.建立 ...

  3. C# WebRequest.Create 锚点“#”字符问题

    背景 在与后台API接口对接时,如将网页Url作为参数请求数据时,如果是锚点参数,则会丢失. 锚点参数 请求通过WebRequest.Create创建一个WebRequest: var uri = & ...

  4. Springboot整合activemq

    今天呢心血来潮,也有很多以前的学弟问到我关于消息队列的一些问题,有个刚入门,有的有问题都来问我,那么今天来说说如何快速入门mq. 一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息 ...

  5. Ubunttu16.04升级/更新git版本(亲测有效)

    sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git 升级前: 升级后:

  6. Android ble 蓝牙4.0 总结一

    本文介绍Android ble 蓝牙4.0,也就是说API level >= 18,且支持蓝牙4.0的手机才可以使用,如果手机系统版本API level < 18,也是用不了蓝牙4.0的哦 ...

  7. 【Spring Cloud笔记】Eureka注册中心增加权限认证

    在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...

  8. 从0开始的Python学习015输入与输出

    简介 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题. 复习 得到输入用 ...

  9. c/c++ 继承与多态 文本查询的小例子(智能指针版本)

    为了更好的理解继承和多态,做一个文本查询的小例子. 接口类:Query有2个方法. eval:查询,返回查询结果类QueryResult rep:得到要查询的文本 客户端程序的使用方法: //查询包含 ...

  10. debian9.6修改系统语言

    (中文改英文) 在VM虚拟机中安装debian9.6(查看版本命令 cat /etc/debian_version ),安装时选择语言为中文:在控制台登录操作时,大部分提示信息显示为乱码,修改中文语言 ...