CREATE
TRIGGER FUEL.HDGJcoaldayexpend1_insertTRIGGER AFTER
INSERT
ON
FUEL.coaldayexpend1 REFERENCING NEW AS new FOR EACH ROW MODE DB2SQL begin atomic declare expDate TIMESTAMP ; declare plantCode VARCHAR(32) ;
declare powerQuan DOUBLE ; declare heatQuan DOUBLE ; declare netQuan DOUBLE ;
declare beltQuan DOUBLE ; declare beltAdjustQuan DOUBLE ; declare powerExpQuan
DOUBLE ; declare heatExpQuan DOUBLE ; declare otherExpQuan DOUBLE ; declare
scheduleQuan DOUBLE ; declare remark VARCHAR(512); declare status VARCHAR(16) ;
declare operateDate TIMESTAMP ; declare operator VARCHAR(50) ; declare
expDateChar VARCHAR(32) ; declare operateDateChar VARCHAR(32) ; declare xml_id
BIGINT;
SET
( expDate,
plantCode,
powerQuan,
heatQuan,
netQuan,
beltQuan,
beltAdjustQuan,
powerExpQuan,
heatExpQuan,
otherExpQuan,
scheduleQuan,
remark,
status,
operateDate,
operator ) = ( new.expDate,
new.plantCode,
new.powerQuan,
new.heatQuan,
new.netQuan,
new.beltQuan,
new.beltAdjustQuan,
new.powerExpQuan,
new.heatExpQuan,
new.otherExpQuan,
new.scheduleQuan,
new.remark,
new.status,
new.operateDate,
new.operator );
if ( expDate IS null ) then
SET
expDateChar = '' ; else
SET
expDateChar = char(date(expDate)) ;
end if ; if ( plantCode IS null ) then
SET
plantCode = '' ; end if ; if ( remark IS null ) then
SET
remark = '' ; end if ; if ( status IS null ) then
SET
status = '' ; end if ; if ( operateDate IS null ) then
SET
operateDateChar = '' ; else
SET
operateDateChar = char(date(operateDate))||' '||char(time(operateDate));
end if ; if ( operator IS null ) then
SET
operator = '' ; end if ; if NOT exists(
SELECT
xml_id
FROM
fuel.jt_hdgj
WHERE
tablename = 'coaldayexpend1' AND
hdgj_id = char(new.id)) then INSERT
INTO platform.DATA_COALDAYEXPEND1(timemark,
itemid,
datadetail)
VALUES
(char(current date) || ' '||char( current time ),
plantCode,
'<CoalDayExpendLiang> <expDate>'||expDateChar||'</expDate>
<plantCode>'||plantCode||'</plantCode>
<powerQuan>'||fuel.doutochar(powerQuan)||'</powerQuan>
<heatQuan>'||fuel.doutochar(heatQuan)||'</heatQuan>
<netQuan>'||fuel.doutochar(netQuan)||'</netQuan>
<beltQuan>'||fuel.doutochar(beltQuan)||'</beltQuan>
<beltAdjustQuan>'||fuel.doutochar(beltAdjustQuan)||'</beltAdjustQuan>
<powerExpQuan>'||fuel.doutochar(powerExpQuan)||'</powerExpQuan>
<heatExpQuan>'||fuel.doutochar(heatExpQuan)||'</heatExpQuan>
<otherExpQuan>'||fuel.doutochar(otherExpQuan)||'</otherExpQuan>
<scheduleQuan>'||fuel.doutochar(scheduleQuan)||'</scheduleQuan>
<status>'||status||'</status> <remark>'||remark||'</remark>
<operateDate>'||operateDateChar||'</operateDate>
<operator>'||operator||'</operator> </CoalDayExpendLiang> ');
SET
(xml_id) = (
SELECT
identity_val_local()
FROM
sysibm.sysdummy1) ;
INSERT
INTO fuel.jt_hdgj(tablename,
xml_id,
hdgj_id)
VALUES
('coaldayexpend1',
xml_id,
to_char(new.id)); end if; if(exists(
SELECT
*
FROM
FUEL.PICOALPROCESSSTATUS
WHERE
TABLENAME='COALDAYEXPEND1' AND
PKID= new.id )) then
UPDATE
FUEL.PICOALPROCESSSTATUS
SET
LAST_UPDATE_DATE=new.LAST_UPDATE_DATE ,
PROCESSTIME=new.LAST_UPDATE_DATE
WHERE
TABLENAME='COALDAYEXPEND1' AND
PKID= new.id ; else
INSERT
INTO FUEL.PICOALPROCESSSTATUS (TABLENAME,
PKID,
PROCESS,
LAST_UPDATE_DATE,
PROCESSTIME)
VALUES
('COALDAYEXPEND1',
new.id,
'已处理',
new.LAST_UPDATE_DATE,
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. C#——Nhibernate探索

    C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate. 首先我们去搜索Nhibernate下载地址,如下链接所示. 该版本可能是最新版,我下载的4.0.4.GA.其中GA意思 ...

  2. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  3. SLAM+语音机器人DIY系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比

    摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...

  4. day09 css

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. java 线程池 ---- newCachedThreadPool()

    class MyThread implements Runnable{ private int index; public MyThread(int index){ this.index = inde ...

  6. Netty中ByteBuf的引用计数线程安全的实现原理

    原文链接 Netty中ByteBuf的引用计数线程安全的实现原理 代码仓库地址 ByteBuf 实现了ReferenceCounted 接口,实现了引用计数接口,该接口的retain(int) 方法为 ...

  7. JVM内存结构,运行机制

    三月十号,白天出去有事情出去了一天,晚上刚到食堂就接到阿里电话, 紧张到不行,很多基础的问题都不知道从哪里说了orz: 其中关于JVM内存结构,运行机制,自己笔记里面有总结的,可当天还是一下子说不出来 ...

  8. PM过程能力成熟度4级

    话说3级的PM已经非常厉害了,但仍然处于定性阶段.如何才能不动声色的跟BOSS过招?PM 4级就是让数字变成你的嘴巴,开启项目管理的量化大门.因此,4级PM的工作重心(详见上一篇文章中的表格),也会逐 ...

  9. JQ表格隔行换色

    <style type="text/css"> html, body { margin: 0; padding: 0; font-size: 15px; font-fa ...

  10. jQuery列表选择美化插件uichoose

    项目主页:http://www.jq22.com/jquery-info12073 演示地址:http://www.jq22.com/yanshi12073