最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

数据同步之各站点同步表触发器创建

来源:动视网 责编:小采 时间:2020-11-09 14:43:49
文档

数据同步之各站点同步表触发器创建

数据同步之各站点同步表触发器创建:在前一个博客中提到了在数据同步的时候,在各站点需要建立各操作表的触发器,在执行增删改的时候,触发器的任务是将其中操作的sql语句拼接成字符串,并保存在表synchro_tb_operate_log中,如果触发器执行出现异常,则将其异常信息保存在另一个表中:SYNC
推荐度:
导读数据同步之各站点同步表触发器创建:在前一个博客中提到了在数据同步的时候,在各站点需要建立各操作表的触发器,在执行增删改的时候,触发器的任务是将其中操作的sql语句拼接成字符串,并保存在表synchro_tb_operate_log中,如果触发器执行出现异常,则将其异常信息保存在另一个表中:SYNC


在前一个博客中提到了在数据同步的时候,在各站点需要建立各操作表的触发器,在执行增删改的时候,触发器的任务是将其中操作的sql语句拼接成字符串,并保存在表synchro_tb_operate_log中,如果触发器执行出现异常,则将其异常信息保存在另一个表中:SYNCHRO_

在前一个博客中提到了在数据同步的时候,在各站点需要建立各操作表的触发器,在执行增删改的时候,触发器的任务是将其中操作的sql语句拼接成字符串,并保存在表synchro_tb_operate_log中,如果触发器执行出现异常,则将其异常信息保存在另一个表中:SYNCHRO_DATA_EXCEP_LOG,其中

synchro_tb_operate_log字段信息:主键ID、拼接的sql语句(其中包含主键ID和地区代码)、是否完成同步(默认为0未完成)、创建时间

SYNCHRO_DATA_EXCEP_LOG字段信息:主键ID、触发器异常名称、触发器异常信息、触发器异常出现的时间

下面是创建item_rec代码,也可以让我们来学习一下创建触发器相关的语法和知识:

create or replace
TRIGGER "ADMIN"."TRIGGER_ITEM_REC"
 after insert or update or delete
 on ITEM_REC FOR EACH ROW

/** HEAD
 * @name 项目记录表触发器
 * @description 变更事件,形成ddl语句插入同步表中
 * @version 1.0.0
 * @author Tang
 * @create-date 2014-07-01
 */
declare
 v_sql nvarchar2(3000); --临时存放sql
 v_zdcode varchar2(30):='08052'; --站点代码
 v_exception varchar2(500);
begin
 v_sql := null;
 case when inserting then--插入数据
 v_sql := 'insert into ITEM_REC('||
 'ID,PROTEAMNAME,PY,PROID,'||
 'JCTYPE,WORKFLAG,ZXFLAG,JWDCODE)'||
 'values('''||
 :new.ID||''','''||replace(:new.PROTEAMNAME,'''','')||''','''||:new.PY||''','''||:new.PROID||''','''||
 :new.JCTYPE||''','''||:new.WORKFLAG||''','''||:new.ZXFLAG||''','''||v_jwdcode||''')';
 when updating then--更新数据
 v_sql := 'update ITEM_REC set '||
 'PROTEAMNAME='''||replace(:new.PROTEAMNAME,'''','')||''''||
 ',PY='''||:new.PY||''''||
 ',PROID='''||:new.PROID||''''||
 ',JCTYPE='''||:new.JCTYPE||''''||
 ',WORKFLAG='''||:new.WORKFLAG||''''||
 ',ZXFLAG='''||:new.ZXFLAG||''''||
 ' where '||
 'ID='||:old.ID||' and JWDCODE='''||v_jwdcode||'''';
 when deleting then--删除数据
 v_sql := 'delete from ITEM_REC t where t.ID='||:old.ID||' and t.JWDCODE='''||v_jwdcode||'''';
 end case;
 if v_sql is not null then--如果v_sql不为空,则将相应信息插入到synchro_tb_operate_log表中
 insert into
 synchro_tb_operate_log(sd_record_id,sd_record_sql,sd_flag,create_time)
 values(SEQ_SYNCHRO_DATA.NEXTVAL,v_sql,0,to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
 end if;
exception
 when others then--如果执行过程中出现异常,则将异常信息插入到SYNCHRO_DATA_EXCEP_LOG表中
 v_exception := substr(sqlcode||'---'||sqlerrm, 1, 500);
 insert into SYNCHRO_DATA_EXCEP_LOG
 (ID,TRIGGER_NAME,EXCEPTION_INFO,EXCEPTION_TIME)
 values
 (sys_guid(),'Trigger_DICT_PROTEAM',v_exception,to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
end TRIGGER_ITEM_REC;

文档

数据同步之各站点同步表触发器创建

数据同步之各站点同步表触发器创建:在前一个博客中提到了在数据同步的时候,在各站点需要建立各操作表的触发器,在执行增删改的时候,触发器的任务是将其中操作的sql语句拼接成字符串,并保存在表synchro_tb_operate_log中,如果触发器执行出现异常,则将其异常信息保存在另一个表中:SYNC
推荐度:
标签: 一个 创建 同步
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top