我正在使用 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 个字符?
最佳答案
这不是JSqlParser的问题,而是它的演变的问题。 :)
Bracketquotation 默认关闭,以支持各种数组语法,在大多数情况下也使用方括号。此更改是在 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 表达式用于以某种方式修改所使用的解析器配置。
关于java - 如何在 JSqlParser 上处理 '[ ] -' 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59135053/