在java中使用spring的jdbcTemplate.Update的方法,在拼写sql语句时,使用了占位符?,例如:
String sql = " delete from test where DECIMAL(TDATE) =DECIMAL(?) and companycode=? and lay=?";
而第一个占位符是在db2的日期格式化函数中使用的,这样就会报错,在db2中占位符是不可以直接放在函数中使用的,需将占位符转为函数所需参数的类型,即如下:
String sql = " delete from test where DECIMAL(TDATE) =DECIMAL(cast(? as varchar(8))) and companycode=? and lay=?";