我使用Eclipse与Spring,Oracle SQL和JdbcTemplate。我试图根据数据的大小删除某些数据,SQL命令在Oracle Sql Developer中工作并完成我想要的工作。
DELETE from TABLE where DATE_COLUMN < SYSDATE - INTERVAL '30' DAY;
然而,在我的DAOImpl.java
,
int thirty = 30;
String sql = "DELETE from TABLE where DATE_COLUMN < SYSDATE - INTERVAL ? DAY";
jdbcTemplate.update(sql, thirty);
我在ORA-00933: SQL command not properly ended
?
时
Caused by: java.sql.SQLException: Invalid column index
和'?'
获得?
。
我不确定"?"
或Integer.class
如何正确使用jdbcTemplate.update()?我尝试添加params
参数和int
对象,但sql命令仍然无法正常工作。
最初我只是试图以String sql = "select count(*) from TABLE";
return jdbcTemplate.queryForObject(sql, Integer.class);
传递,然后我尝试传入字符串数字30,但它仍然无法正常工作。
我真的不确定我做错了什么。
我连接到数据库,一切正常,我尝试了一些更简单的SQL命令,如
'30'
它起作用并返回。
编辑:
我可以?
代替我String sql = "DELETE from TABLE where DATE_COLUMN < SYSDATE - INTERVAL ? DAY";
中的#[fg=colour28 bg=colour250]Hello World!
并运行正确,但我不想对其进行硬编码。