Кажется, что этот вопрос был избит до смерти, но я не могу найти решение для своей ситуации. В Oracle SQL Developer я написал следующий запрос, и я знаю, что он синтаксически корректен (или он как минимум извлекает нужные мне данные).JDBC - Преобразование строки SQL для удовлетворения Java
select QUERY.SETID, COUNT(QUERY.GENEID)
from QUERY, G2
where QUERY.GENEID = G2.GENEID group by QUERY.SETID
order BY COUNT(QUERY.GENEID) DESC;
Я перевел его на свою программу на Java, как показано здесь.
String query = "select QUERY.SETID, COUNT QUERY.GENEID"
+ "from QUERY, G2"
+ "where QUERY.GENEID = G2.GENEID group by QUERY.SETID "
+ "order BY COUNT QUERY.GENEID DESC;";
Теперь из многих вопросов, которые я читал, «порядок BY» команды, как правило, порождают проблемы, поэтому я попытался удалить, что вся четвёртая линия читать, как это.
String query = "select QUERY.SETID, COUNT QUERY.GENEID"
+ "from QUERY, G2"
+ "where QUERY.GENEID = G2.GENEID group by QUERY.SETID;";
Но я все еще получаю ключевое слово FROM, не найденное там, где ожидаемая ошибка. Я был бы признателен за любую помощь или указал бы на другие вопросы, которые могут помочь. Благодарю.
EDIT: Это код ошибки я получаю
Oct 30, 2014 4:36:02 PM Main main
SEVERE: null
java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:853)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1469)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:389)
at Main.main(Main.java:37)
Между вашими линиями нет промежутков времени! Когда строки конкатенированы, все идет не так! –