我将xml作为字节数组存储在oracle数据库的clob列中。 现在尝试使用jdbctemplate将结果集作为弹出批处理中的字节数组。它抛出异常
org.springframework.dao.InvalidDataAccessApiUsageException :StatementCallback; SQL [从中选择DEFAULT_REPORT_PARAM_XML cfg_report_list,其中report_name ='付款STP报告'“]; 不支持的功能;嵌套异常是 java.sql.SQLFeatureNotSupportedException:不支持的功能
我正在使用的PFB代码示例
byte[] configxml = jdbcTemplate.queryForObject(
"select DEFAULT_REPORT_PARAM_XML from cfg_report_list where report_name='Payments STP Report'",
byte[].class);
请注意我使用的是spring-batch 3.0.1 RELEASE。
请让我知道解决这个问题的方法。
由于
答案 0 :(得分:4)
无需致电getBlob()
;你应该像这样简化:
byte[] configxml = jdbcTemplate.queryForObject(
"select DEFAULT_REPORT_PARAM_XML from cfg_report_list where report_name='Payments STP Report'",
(rs, rowNum) -> rs.getBytes(1));
答案 1 :(得分:3)
尝试使用RowMapper
,然后使用ResultSet.getBlob
public class YourXmlRowMapper implements RowMapper<byte[]> {
public byte[] mapRow(ResultSet rs, int rowNum) throws SQLException {
Blob column = rs.getBlob("DEFAULT_REPORT_PARAM_XML");
return column.getBytes(1, column.length());
}
}
byte[] configxml = jdbcTemplate.queryForObject(
"select DEFAULT_REPORT_PARAM_XML from cfg_report_list where report_name='Payments STP Report'",
new YourXmlRowMapper());