diff --git a/runtime/src/main/java/io/dingodb/expr/runtime/op/cast/LongCastCheckOpFactory.java b/runtime/src/main/java/io/dingodb/expr/runtime/op/cast/LongCastCheckOpFactory.java index a2460063..d5f949b4 100644 --- a/runtime/src/main/java/io/dingodb/expr/runtime/op/cast/LongCastCheckOpFactory.java +++ b/runtime/src/main/java/io/dingodb/expr/runtime/op/cast/LongCastCheckOpFactory.java @@ -189,6 +189,9 @@ protected Long evalNonNullValue(@NonNull Object value, ExprConfig config) { if (config.getExprContext() != ExprContext.CALC_VALUE) { return longCastWithStringCompat((String)value); } + if (((String) value).length() > 15) { + return longCastWithStringCompat((String)value); + } return longCast(Double.parseDouble((String) value)); } else if (value instanceof Boolean) { return longCast((Boolean) value);