首页 > 解决方案 > ORA-00933: SQL 命令未正确结束 - WHERE 子句

问题描述

我已将以下查询存储在字符串中以请求我的 OracleDB:

"SELECT firstname, lastname, COUNT(kids)  
FROM test_table  
WHERE firstname in ('mario',  'peter')  
GROUP BY firstname, lastname
ORDER BY firstname, lastname;"

当我通过我的 Java 应用程序和 JDBC 执行查询时,我收到以下错误:

Exception in thread "main" java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)
    at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:876)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1498)
    at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:406)
    at com.foo.test.App.main(App.java:30)

标签: javaoraclejdbc

解决方案


去掉分号,这里:

ORDER BY firstname, lastname;"
                            ^
                            |

推荐阅读