/* | |
// 配置格式说明: | |
// name: 转换目标表名 | |
// action: 装换前的操作,truncate 表示先执行truncate 操作,none 表示无任何动作 | |
// desc: 转换规则的描述 | |
// pre_exec: 执行转换前需要执行一次的 sql 语句,格式如 [ "insert into ....", "delete from ...."], | |
// 可以有多条 sql 语句, 这个操作是在原始数据库执行 | |
// post_exec: 转换完成后需要执行一次的 sql 语句, 格式同 pre_exec, 这个操作是在目标数据库执行 | |
// src_sql: 转换原始表查询 sql | |
// dest_column: 转换目标表 column , src_sql 查询出来的字段与 dest_column 的字段 | |
*/ | |
[ | |
{ | |
"name": "T_DEVICE_TEMP", | |
"action": "truncate", | |
"desc": "设备注册表", | |
"src_sql": "SELECT T1.DEVICE_ID,T1.DEVICE_NAME,T1.DEVPHY999_ID,T1.DEV999_NO, | |
T1.PHYTYPE DEVPHYTYPE,T1.DEVTYPE,'' DEVVERNO,T1.CARDSTR,T2.DEVICE_ID, | |
1 RUNSTATUS,(case when T1.STATE_ID between 1 and 4 then 1 | |
else 2 end) STATUS, | |
T1.PORTCOUNT,T1.PORTNO,T1.JOINMODE,T1.COMADD,nvl(trim(T1.PORT),0),T1.BAUDRATE, | |
'' CARDSET,T1.BSHEETVER,T1.LASTTRASERNO,T1.OPERATE_TIME LASTTRANSTIME, | |
trim(T1.PUSERNO),0 MAXAMT,T1.SUBSYSTEM_ID,T1.AREA,'' DOORLSTVER,T1.DEV_USAGE, | |
'' OPENDATE,'' CLOSEDATE,'' BATCHNO,'' LASTSAVED,'' REMARK FROM | |
YKT_CUR.T_PIF_DEVICE T1 LEFT JOIN YKT_CUR.T_PIF_DEVICE T2 ON | |
T1.FDEV_ID=T2.DEVICE_ID AND T1.DEVPHY999_ID NOT IN ('FFFFFFFF','00000000') | |
AND T2.STATE_ID<5 ORDER BY T1.DEVICE_ID", | |
"dest_column": "DEVICEID, DEVICENAME, DEVPHYID,DEVICENO, DEVPHYTYPE, DEVTYPECODE, | |
DEVVERNO, CARDPHYTYPE, FDEVICEID,RUNSTATUS, STATUS,SVRPORTCNT, | |
SVRPORTNO,COMMTYPE, IP,PORTNO, BAUDRATE, CARDSET,CARDVERNO, | |
LASTSEQNO,LASTTRANSTIME,PURSENO, MAXAMT, SYSID,AREACODE, | |
DOORLSTVER, DEVUSAGE,OPENDATE, CLOSEDATE, BATCHNO, | |
LASTSAVED, REMARK", | |
"post_exec": ["update t_device_temp x set devphyid=substr(devphyid,1,4) | |
|| lpad(to_number(substr(devphyid,5,1), 'XX'),2,'0') | |
|| lpad(to_number(substr(devphyid,6,1), 'XX'),2,'0') | |
|| substr(devphyid,7,2) | |
where x.devphytype=1001 and length(x.devphyid) = 8"] | |
} | |
] |