mysql select * frm aaa limit 20xxx ,limit后的字符串无法转换为数字的处理

This commit is contained in:
tivenwang
2016-06-07 10:56:16 +08:00
parent 7d8763bcb9
commit 1ccaaa5572
3 changed files with 50 additions and 2 deletions
@@ -15,6 +15,8 @@
*/
package com.alibaba.druid.sql.parser;
import com.alibaba.druid.util.StringUtils;
import static com.alibaba.druid.sql.parser.CharTypes.isFirstIdentifierChar;
import static com.alibaba.druid.sql.parser.CharTypes.isIdentifierChar;
import static com.alibaba.druid.sql.parser.CharTypes.isWhitespace;
@@ -1147,7 +1149,11 @@ public class Lexer {
}
public BigDecimal decimalValue() {
return new BigDecimal(subString(mark, bufPos).toCharArray());
String value = subString(mark, bufPos);
if (!StringUtils.isNumeric(value)){
throw new ParserException(value+" is not a number!");
}
return new BigDecimal(value.toCharArray());
}
public static interface CommentHandler {