-2
我試圖通過JDBC對Oracle數據庫執行查詢。我已經驗證它在SQL Developer中有效。 但是當我通過JDBC運行它,我得到JDBC:無法創建語句
ps = con.prepareStatement(sql.toString());
我已經嘗試了不同的語句和SQL查詢,在JDBC在SQL開發商鑽不作爲全部工作的「空」值。另外,我沒有得到任何堆棧跟蹤調試到..
查詢1
sql.append("SELECT * FROM Tabel WHERE (ID1=" + id + " AND ORG=" + org + ") OR (ID2=" + id + " AND ORG=" + org + ")");
QUERY2
sql.append("SELECT * FROM Tabel WHERE (ID1=" + id + " OR ID2=" + id + ") AND ORG=?" + org);
QUERY3
sql.append("SELECT * FROM Tabel WHERE (ID1=? OR ID2=?) AND ORG=?");
ps = con.prepareStatement(sql.toString());
ps.setString(1, id);
ps.setString(2, id);
ps.setString(3, org);
代碼
try {
log.debug("Creating Query");
StringBuffer sql = new StringBuffer();
sql.append("SELECT * FROM Table WHERE (ID1=? OR ID2=?) AND ORG=?");
log.debug("Query created: " + sql.toString()); //Don't get here
ps = con.prepareStatement(sql.toString());
ps.setString(1, id);
ps.setString(2, id);
ps.setString(3, org);
log.debug("Query Created!!!!");
con = getConnection();
} catch (Exception e) {
log.error("Could not create statement in methodXXX");
//Returns null in e.getMessage()
throw new Exception("Could not create query: " + e.getMessage());
}
//亨裏克
正是你試圖執行?據我看到你只是設置參數值。 – user1455836
在追加到它之前是什麼'sql'? –
查詢3是很好的做法,它應該可以工作 –