2011-09-09 110 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

相關問題