使用Java PreparedStatement時,未檢測到問號佔位符。當調用statementName .setLong(1,123)時,它會引發錯誤「列索引超出範圍:1,列數:0」。我的例子來自Postgres 8.4,但問題發生在SQL有機會讓它到SQL服務器之前。Java PreparedStatement無法識別子查詢中的佔位符
對一些工作準備語句比較後,我意識到,破一個包含一個子查詢類似於:
SELECT * FROM (
SELECT DISTINCT (name)
id,
name
FROM MyTable
WHERE id > ?
ORDER BY name) AS Level1
ORDER BY 1
什麼PgJDBC版本? – 2013-04-03 23:54:37
發佈拋出異常的java代碼塊,而不僅僅是查詢。查詢是可以的,但問題可能與您編寫java代碼的方式相同 – Barranka 2013-04-03 23:57:55
參數的索引是基於1的。 – David 2013-04-03 23:57:56