我使用的是JSqlParser 3.0,我的查询是SELECT * from [dev-testdb].dbo.EMPLOYEES。我试图删除[]字符,因为这些字符不支持JSqlParser 3.0版本。我想1.x可以,但我必须使用3.0。
去掉括号后,我的查询看起来像SELECT * from dev-testdb.dbo.EMPLOYEES。我正在调试我的项目,并在下面的命令中
final Statement statement = CCJSqlParserUtil.parse(sql);我捕捉到了这个异常
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "-" "-"
at line 1, column 18.当我使用JSqlParser进行解析时,如何修复这3个字符?
发布于 2019-12-02 10:04:39
这不是JSqlParser的问题,而是的问题。:)
在默认情况下,brackets被关闭,以支持所有类型的数组语法,在大多数情况下,这种语法也使用方括号。这一变化是在JSqlParser 3.0中引入的。
数组解析是默认行为。必须使用解析器标志(CCJSqlParser.withSquareBracketQuotation).启用方括号引号。
下面是讨论:https://github.com/JSQLParser/JSqlParser/issues/677。
若要再次激活此括号引号,请使用以下内容:
CCJSqlParserUtil.parse("select * from [mytable]", parser -> parser.withSquareBracketQuotation(true));lambda表达式用于以某种方式修改已使用的解析器配置。
https://stackoverflow.com/questions/59135053
复制相似问题