Maxmo MEA接口传输的一个问题处理

今天遇到一个工单预留问题,预留数据使用的物料居然没有!从业务逻辑来讲是不会发生种情况的。怎么解决? 缺哪个插入哪个,还是批量同步(目前接口同步物料数据简直就是灾难)。

实在是不能一条条插入,7家分公司,19个地点,每个工单N条预留信息,工作量没法想象。己所不欲勿施于人,实在不忍心让自己和伙伴承受这钟痛苦。 交给程序吧。

忙活了一天,算是暂时解决了,效率问题待进一步测试~ 

--建立测试表
create table table1(id varchar2(100),itemnum varchar2(1000),location varchar2(1000),orgid varchar2(1000),siteid varchar2(1000),memo varchar2(1000), ROWSTAMP varchar2(40));  
--插入数据 
insert into table1(id,itemnum,location, orgid, siteid, memo, rowstamp)values(table1SEQ.nextval,'82101000','TJ01BASE','CNOOCTJ', 'TIANJIN','灯泡100W','200') ;  
--模拟maximo对象,创建序列和trigger
CREATE SEQUENCE table1SEQ INCREMENT BY 1 MAXVALUE 999999999999999999999999999 MINVALUE 1 CACHE 20 ORDER;

--创建trigger
CREATE OR REPLACE TRIGGER "MAXIMO"."table1" BEFORE INSERT OR UPDATE ON table1 FOR EACH ROW DECLARE NEXTVAL INTEGER; BEGIN SELECT MAXSEQ.NEXTVAL INTO NEXTVAL FROM DUAL;
 :NEW.ROWSTAMP := NEXTVAL; END;
 /

--插入数据
merge into table1 t1  
using (select '82101900' itemnum, 'TJ01BASE' location, 'CNOOCZJ' orgid, 'TIANJIN' siteid , '灯泡100W' memo , '123' ROWSTAMP from dual) t2  
on (t1.itemnum = t2.itemnum and t1.location=t2.location and t1.siteid=t2.siteid and t1.orgid=t2.orgid)  
--存在什么也不错,这里使用merge就是为了省去判断逻辑
--when matched then  -- update set t1.memo = t2.memo  
when not matched then  
     insert values (table1SEQ.nextval,t2.itemnum, t2.location,t2.orgid, t2.siteid,t2.memo, t2.rowstamp);  



--删除测试数据  
drop table table1;  
drop SEQUENCE table1SEQ;  
drop TRIGGER "MAXIMO"."table1"	

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值