【发布时间】:2015-11-29 19:17:05
【问题描述】:
我正在使用带有 Java 应用程序的 Oracle SQL Developer。我想向数据库询问这个查询:
select * from vocabolario, vocaboli_help where verbo=1 and
vocabolario.id = vocaboli_help.id and vocaboli_help.usato = 0
当我从 SQL 开发人员运行查询时,该查询有效,但是当使用 stmt.executeQuery(string) 从 Eclipse 运行它时,其中 stmt 是一个 Statement 对象,它会引发以下异常:SQL 命令未正确结束。
我还在字符串末尾加了一个分号,但它不起作用。
我将stmt.executeQuery(string) 与其他查询一起使用,在这些情况下没有问题。我能看到的唯一区别是,在这种情况下,AND 中有where 条件。
Java 代码:
private final static String NOME_DATABASE = "VOCABOLARIO", NOME_DATABASE_HELP ="VOCABOLI_HELP";
String type ="verbo";
String query = "SELECT * FROM " + NOME_DATABASE + ", " + NOME_DATABASE_HELP +" WHERE " + type + " = 1 " +
"AND " + NOME_DATABASE +".ID = " + NOME_DATABASE_HELP +".ID AND "+NOME_DATABASE_HELP+".USATO = 0";
System.out.println(query);
int cont = 0;
String result="";
try {
ResultSet res = statement.executeQuery(query);
while(res.next()) {
String cod = res.getString("ID").trim();
String voc = res.getString("VOCABOLO").trim();
String trad = res.getString("TRADUZIONE").trim();
if(cont == n)
result = cod + "," + voc + "," + trad;
cont++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
`
【问题讨论】:
-
发布你正在执行的Java代码。
-
在你的 sql 代码中你引用表
vocabolario_help但在 java 中它是vocaboli_help
标签: java oracle oracle-sqldeveloper