2011-09-09 112 views
1

试图运行,运行此Oracle SQL查询SQL命令不能正确地结束

String query = 
      "SELECT count(*) " + 
      "FROM TASK t " + 
      "WHERE t.TASK_ID = ? "; 

我不断收到SQL命令不能正确地结束

打印字符串,并得到了这个输出 SELECT COUNT(* Java方法)FROM TASK t WHERE t.TASK_ID =?

*编辑为反映新的更改,该方法基本上查找taskID,如果它存在返回true,否则为false。

public boolean loadTaskId(Integer taskId) throws SQLException{ 

    int count = 0; 

    String query = 
      "SELECT count(*) " + 
      "FROM TASK t " + 
      "WHERE t.TASK_ID = ?"; 

    OraclePreparedStatement stmt = prepareStatement(query); 
    stmt.setInt(1, taskId); 
    ResultSet rs = stmt.executeQuery(); 
    if (rs.next()) { // only load the first one 
     count = rs.getInt(1); 
    } 
    stmt.close(); 
    if (count == 0) { 
     return false; 
    } else { 
     return true; 
    } 
} 
+0

“select count(*)from task twhere t.jdeis_task_id =?”是无效的SQL。考虑在出现错误时将查询作为调试的一部分进行打印。 – DwB

+0

我使用了OraclePreparedStatement,所以在设置了查询字符串之后,我设置了?的 – sng

+0

的值替换了?与数字和尝试它也仍然无法工作 – sng

回答

0

想通了什么错了,我没有删除库中的.jar文件,它有一些名称冲突正在进行,而不是重建。 *拍我自己的头

1
String query = 
      "SELECT count(*) " + 
      "FROM TASK t " + 
      "WHERE t.TASK_ID = ?"; 

您还没有添加空格

+0

不起作用或者 – sng

+3

'FROM TASK as t'在Oracle上不起作用。 Oracle不允许将'as'关键字用于表格别名。例如,'select * from dual as d'给出'ORA-00933:SQL命令没有正确结束'。 '从双d'选择*作品。 –

+0

我基本上给出了一个SQL查询的正确答案,但我现在没有在神谕案例 – Anush

8

您可能需要修改您的SQL语句,包括一些空间:

String query = 
     "SELECT count(*) " + 
     "FROM TASK t " + 
     "WHERE t.TASK_ID = ?"; 

这可能是问题。您可以将字符串打印到System.out以确认。

+0

现在我不能相信我错过了这个谢谢,但它仍然不工作,给出同样的错误。 – sng

+0

您正在更换“?”与实际的身份证,对吗? – JW8

+0

@JW不是'''JDBC变量占位符吗? – Neil

相关问题