diff --git a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java index 914300c303..e86f2dc5ce 100644 --- a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java +++ b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java @@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory; import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.util.TypeUtils; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig.ESMapping; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem.ColumnItem; @@ -101,13 +102,15 @@ public static Object typeConvert(Object val, String esType) { break; case "float": case "half_float": - case "scaled_float": if (val instanceof Number) { res = ((Number) val).floatValue(); } else { res = Float.parseFloat(val.toString()); } break; + case "scaled_float": + res = TypeUtils.toBigDecimal(val); + break; case "boolean": if (val instanceof Boolean) { res = val;