如何处理 JSqlParser 上的 '[ ] -' 字符

How to handle '[ ] -' characters on JSqlParser

我正在使用 JSqlParser 3.0,我的查询是 SELECT * from [dev-testdb].dbo.EMPLOYEES。我正在尝试删除 [] 字符,因为这些不支持 JSqlParser 3.0 版本 characters.I 猜测 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 个字符?

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

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

中引入的

The array parsing is the default behaviour. Square bracket quotation has to be enabled using a parser flag (CCJSqlParser.withSquareBracketQuotation).

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

要再次激活这个括号引用,请使用类似的东西:

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

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