0
好吧,我知道答案很簡單,我會感到非常愚蠢的,但...JDBC的PreparedStatement,UNION選擇和參數傳遞
的Java JDK 1.7中,Sybase JDBC驅動程序
代碼snipit:
String sql = "select <blah>
from <blah blah>
where date1 = ?
UNION
select <blah>
from <blah blah>
where date2 = ?";
Connection conn = ConnectionManager.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
logger.info("parmemeter count: " + stmt.getParameterMetaData().getParameterCount());
stmt.setDate(1, new java.sql.Date(date.getTime()));
stmt.setDate(2, new java.sql.Date(date.getTime()));
ResultSet rs = stmt.executeQuery();
while rs.next()) {
// the rest of the code
}
- 那麼,爲什麼parmeter只算1?
- 運行程序引發錯誤抱怨:java.sql.SQLException中:無效參數索引2
- 如果我減少SQL要麼片和降低的setDate()到只有1它工作得很好。
- 與UNION的SQL運行在Interactive SQL會話就好了(?填充有當然的日期)