oracle 自增字段更新问题

 

oracle 数据库使用触发器设置的字段自增
那么报表在进行智能更新的时候,这个字段的更新就会不正确,如下图所示:

数据库端触发器的配置如下:

根据触发器的设置来看,是更新过程中执行了 insert 操作时,才会出现上面主键自增的问题,应该如何解决?

解决方法:
数据去向脚本中增加如下表达式:

>output(对象1.(SRL_NUM)\对象1_old.(SRL_NUM))    新旧对象主键的差集  
  
>output(ifnumber(对象1(1).SRL_NUM))    输出判断新/旧对象中的主键的类型是否一致 

如果差集不为空,且判断类型不一致,那么需要转化下类型:
如果从 web 端提交的话,这种一串数的,会被认为是整数,那么应该在 update 里面写个 db.update(t:t_old,tbl,k:string(k),f,f2;k)
即:

A1.update@1k(对象 1: 对象 1_old,TI_EVENT_PLAN,SRL_NUM:string(SRL_NUM),EVNT_YEAR,EVNT_THEME,EVNT_TYPE;SRL_NUM)