2012-09-14 68 views
1
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
String query = "select a.alert_id from alert a where (alert.last_execution is null or trunc(alert.last_execution) < to_date(?, 'dd/MM/yyyy')) and alert.frequency = ?"; 
jdbcTemplate.query(query, new Object[] {sdf.format(new Date()), "DAILY"}, new AlertRowMapper()) 

它retuns在查詢線異常:彈簧JDBC模板查詢與字符串/ VARCHAR參數

SQL狀態[99999];錯誤代碼[17004];無效的列類型;嵌套的異常是java.sql.SQLException中:無效的列式 在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)

難道有人知道爲什麼它不工作?

感謝

回答

0

嘗試直接發送Date對象爲jdbcTemplate參數並從查詢中刪除to_date()部分。 Spring應該自動轉換數據類型,而不是在應用程序中轉換爲字符串和從字符串轉換。

+0

感謝您的答覆,我試過和不工作,同樣的錯誤:( – andre

+0

你能不能給我們的模式 – bazwilliams

+0

ALERT_ID \t數(19); 頻率\t VARCHAR2(50); last_execution \t時間戳(0)與時區; – andre