我的说法是new_call.cdctype=goal.cdctype当我对此调用方法 CCJSqlParser.SQLCondition() 时,我得到一个异常说Encountered " "=" "= "" at line 1, column 17.Was expecting one of: "NOT" ... "LIKE" ... "ILIKE" ... "NOT" ... "NOT" ...关于为什么会发生这种情况的任何见解?我正在检查连接条件,我认为这是连接条件的合适表达式。代码:String sql = "new_call.cdctype=goal.cdctype";CCJSqlParser parser = new CCJSqlParser(new StringReader(sql)); String errorMsg=null; try { parser.SQLCondition(); } catch (ParseException e) { errorMsg=e.getMessage(); } return errorMsg;
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
如果您深入研究JSqlParsers语法,您会发现SQLCondition只是以下之一:
在
之间
一片空白
存在
喜欢表达。
您指定了一个所谓的RegularCondition。
以下是两种解析条件的方法:
//Shortcut
Expression parseCondExpression = CCJSqlParserUtil.parseCondExpression("new_call.cdctype=goal.cdctype");
System.out.println(parseCondExpression);
//from issue
String sql = "new_call.cdctype=goal.cdctype";
CCJSqlParser parser = new CCJSqlParser(new StringProvider(sql));
try {
parser.RegularCondition();
} catch (ParseException e) {
e.printStackTrace();
}
顺便说一下,我使用的是 JSqlParser V1.2。您的版本似乎有点旧,因为解析器的构造函数参数现在是Provider。
添加回答
举报
0/150
提交
取消