<column src="字段名" targ="目标字段名" value="REPLACE($(src.字段名), '-', NULL)"/>
- 用途:将源表中
'-' 等无效字符转为 NULL,避免脏数据。
- 用途:拼接接口参数或源表字段,生成唯一标识(如报告流水号)。
- 示例:
'1'.equals(body['age_unit'])? body['age']:'岁'.equals(body['age_unit'])? body['age']:null
- 用途:同步时通过主键定位目标表记录,确保更新 / 删除精准。
<?xml version="1.0" encoding="UTF-8"?>
<table-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../r2RMapping.xsd"><table-mapping src="pt_outhosp_order"><mappings><mapping targ="yh_mz_yzmxjl" type="all"><!-- 1. 状态字段映射:将源表 status 字段值中的 '-' 替换为 NULL 后,存入目标表 status_targ 字段 --><column src="status" targ="status_targ" value="REPLACE($(src.status), '-', NULL)"><!-- 2. 系统更新时间:将目标表 xtsjgxsj 字段设置为当前系统日期时间 --><column src="N/A" targ="xtsjgxsj" value="'$(sysdate)'"/><!-- 3. 操作类型标识:将 dsql_optype 字段设置为 'update',标识操作类型为更新 --><column src="N/A" targ="dsql_optype" value="'update'"/><!-- 4. 主键字段映射:将源表 system_source 字段作为主键,映射到目标表 hisbb 字段 --><column src="system_source" targ="hisbb" pk="true"/><!-- 5. 操作类型标识:将 dsql_optype 字段设置为 'delete',标识操作类型为删除 --><column src="N/A" targ="dsql_optype" value="'delete'"/><!-- 6. 操作类型标识:将 dsql_optype 字段设置为 'batch_delete',标识操作类型为批量删除 --><column src="N/A" targ="dsql_optype" value="'batch_delete'"/><!-- 7. 报告流水号构造:通过拼接 request_no 和 report_serial_no 构造目标表 bglsh 字段的值 --><column src="N/A" targ="bglsh" value="body['request_no']+'_'+body['report_serial_no']"/><!-- 8. 年龄字段处理:根据 age_unit 的值判断,若为 '1' 或 '岁',则取 age 的值,否则为 null,存入 nls 字段 --><column src="N/A" targ="nls" value="'1'.equals(body['age_unit'])? body['age']:'岁'.equals(body['age_unit'])? body['age']:null"/><!-- 9. 就诊性质字段:将目标表 jzxzmc 字段固定设置为 '住院' --><column src="N/A" targ="jzxzmc" value="'住院'"/></mapping></mappings></table-mapping>
</table-mappings>
- 节点嵌套:
<column> 必须是 <mapping> 的直接子节点,不可嵌套在其他 <column> 内。
- 字符串格式:常量字符串需用单引号包裹(如
'住院'),避免语法错误。
- 占位符:
$(src.字段名) 用于取源表字段值,body['key'] 用于取外部参数(如接口请求体),需结合工具支持调整。
- 兼容性:函数(如
REPLACE)和系统变量(如 sysdate)需适配目标数据库,不同数据库语法可能略有差异。