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. Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  2. 简述C#中IO的应用

    在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO 定义了一系列类.接口. ...

  3. 观察者模式与.Net Framework中的委托与事件

    本文文字内容均选自<大话设计模式>一书. 解释:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够 ...

  4. EF时,数据库字段和实体类不一致问题

    场景:由于一些原因,实体中属性比数据库中字段多了一个startPage属性.PS:controllers中用实体类去接收参数,但是传入的参数比数据库中实体表多了一个字段, 这种情况下,应该建一个vie ...

  5. Spring boot项目maven的profile多环境配置不自动替换变量的问题解决

    Spring boot项目maven的profile多环境配置不自动替换变量的问题解决   在网上找了好久,配置都很简单,可是我的程序就是不能自动替换变量,最终单独测试,发现原来是引用spring b ...

  6. 第三次上机,ADO接口的使用

    <html> <head> <title>Reg</title> </head> <body><center> &l ...

  7. [C#学习笔记1]用csc.exe和记事本写一个C#应用程序

    csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序.它与Visual Studio等IDE(Integrated Development Environ ...

  8. 30号快手笔试(三道ac两道半)————-历史上最大的网络失误orz

    case  50 ,20,100 做题以来第一次重大失误:最后两分钟发现手机关机了,然后充电开机orz 页面是js代码, 钟表是一直会走的, 手机没电了, 电脑连接的手机的热点: 只顾在调试,先过了第 ...

  9. 使用PDF.JS实现pdf文件在线预览时,报文件被损坏的错误

    首先大概说明一下问题出现的背景:我用PDF.JS实现文件在线预览,参考网上的办法,在jsp文件中使用 <iframe src="<c:url value="js/gen ...

  10. 测者的测试技术手册:分清Java的Override和Overload

    Java的Override和OverloadOverride重写:子类对父类的允许访问的方法实现过程重新编写,但是 不可改变返回值和入参.重弄写的规则: 参数列表必须完全与被重写方法的相同: 返回类型 ...