net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:40)
at JsqlparserTest.main(JsqlparserTest.java:34)
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered "<EOF>" at line 1, column 13.
Was expecting one of:
"AS" ...
"SET" ...
<S_IDENTIFIER> ...
<S_QUOTED_IDENTIFIER> ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5450)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5326)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:162)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:114)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
... 1 more
Caused by:
net.sf.jsqlparser.parser.ParseException: Encountered "<EOF>" at line 1, column 13.
Was expecting one of:
"AS" ...
"SET" ...
<S_IDENTIFIER> ...
<S_QUOTED_IDENTIFIER> ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5450)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5326)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:162)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:114)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
at JsqlparserTest.main(JsqlparserTest.java:34) 作者: cookie 时间: 2011-3-2 17:26 标题: 抱歉,原来是我SQL打错了
抱歉,原来是我SQL打错了「String sql = new String("UPDATE table1 SET column1 = 1 column2 = 2 WHERE column3 = 3;");」中
楼主我的需求这这样的,如有这样的语句 select xx1,xx2,xx3 from Xtable where (xx1 like 'abc%' escape '\\’ or xx1 like 'abc%' or xx1 = 'abc' ) and stime between 1234 and 4567;
对于查询条件整理,最后只剩下xx1 like 'abc%' escape '\\’ 。
用这个包处理到了下面的一句
Expression where = ((PlainSelect) select.getSelectBody()).getWhere();
我发现我取不出了那个具体的条件,求指导 作者: admin 时间: 2011-4-22 12:34
我按照你说的做了,已经可以打印出结果了,通过或不通过,可是我在测试where条件有and or 时候抛异常了
bsh.InterpreterError: unimplemented binary operator
at bsh.Primitive.booleanBinaryOperation(Unknown Source)
at bsh.Primitive.binaryOperationImpl(Unknown Source)
at bsh.Primitive.binaryOperation(Unknown Source)
at sqlparser.BinaryOperation._eval(BinaryOperation.java:40)
at sqlparser.BinaryOperation.eval(BinaryOperation.java:28)
at sqlparser.WhereExpressionVisitor.visit(WhereExpressionVisitor.java:270)
at net.sf.jsqlparser.expression.operators.conditional.AndExpression.accept(AndExpression.java:36)
at sqlparser.WhereExpressionVisitor.eval(WhereExpressionVisitor.java:70)
at sqlparser.TestSQL2.main(TestSQL2.java:36)
我用带sql语句解析是出现异常 这是源码
Statement statement =pm.parse(new StringReader("select * from a where 姓名='崔永远'"));
if (statement instanceof Select) {
Select selectStatement = (Select) statement;
PlainSelect ps= (PlainSelect)selectStatement.getSelectBody();
System.out.println(selectStatement.getSelectBody());
System.out.println(ps.getWhere().toString());
System.out.println(((GreaterThan) ps.getWhere()).getRightExpression());
System.out.println(((GreaterThan) ps.getWhere()).getStringExpression());
SqlParsersUtil sqlParsersUtil = new SqlParsersUtil();
List tableList = sqlParsersUtil.getTableNames(selectStatement);
for (Iterator iter = tableList.iterator(); iter.hasNext();) {
System.out.println(iter.next().toString());
}
}
下面是异常信息
Exception in thread "main" net.sf.jsqlparser.parser.ParseException: Encountered "<EOF>" at line 0, column 0.
Was expecting one of:
"DROP" ...
"WITH" ...
"DELETE" ...
"CREATE" ...
"SELECT" ...
"INSERT" ...
"UPDATE" ...
"REPLACE" ...
"TRUNCATE" ...
"(" ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5530)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5406)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:138)
at com.ytec.bi.ride.analytics.util.SqlParsersUtil.main(SqlParsersUtil.java:172) 作者: admin 时间: 2011-9-21 09:50
update tb_tt set grpcustno='22',changenum='33' where (orgcode,grpcustno) in (select orgcode,grpcustno from tb_tt where changenum='12');
net.sf.jsqlparser.JSQLParserException
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:40)
at com.testsql.TestSql1.main(TestSql1.java:60)
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " <S_IDENTIFIER> "orgcode "" at line 1, column 55.
Was expecting one of:
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5530)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5406)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:1493)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:1487)
at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:1257)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:187)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:116)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
... 1 more
Caused by:
net.sf.jsqlparser.parser.ParseException: Encountered " <S_IDENTIFIER> "orgcode "" at line 1, column 55.
Was expecting one of:
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
"(" ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5530)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5406)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:1493)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:1487)
at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:1257)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:187)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:116)
at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:38)
at com.testsql.TestSql1.main(TestSql1.java:60)
异常信息====================:null