1

我正在使用 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 个字符?

4

1 回答 1

2

这不是JSqlParser的问题,而是它的演变问题。:)

括号引号默认关闭,以支持各种数组语法,在大多数情况下也使用方括号。JSqlParser 3.0引入了此更改。

数组解析是默认行为。必须使用解析器标志 ( CCJSqlParser.withSquareBracketQuotation ) 启用方括号引号。

这是讨论:https ://github.com/JSQLParser/JSqlParser/issues/677 。

要再次激活此括号引用,请使用以下内容:

CCJSqlParserUtil.parse("select * from [mytable]", parser -> parser.withSquareBracketQuotation(true));

lambda 表达式用于以某种方式修改使用的解析器配置。

于 2019-12-02T10:04:39.730 回答