0
我使用spring jdbctemplate来获取数据库数据,并且我想要检索结果的存储过程具有输入和输出参数。为什么registerOutParameter不接受OracleTypes.VARCHAR?
我正在使用CallableStatement在procedureCall中传递此参数,但是当我指定一些OracleTypes.VARCHAR时,jdeveloper强调表达式。
CallableStatementCreator creator = new CallableStatementCreator(){
String sql = "{call procedure(?,?)}";
oracle.jdbc.OracleCallableStatement cs = (oracle.jdbc.OracleCallableStatement)connection.preparecall(sql);
cs.setLong(1,10000);
cs.registerOutParameter(1,OracleTypes.VARCHAR);
return cs;
}
return (MyObject)jdbcTemplate.execute(creator,new CallableStatementCallback(){
public Object doInCallableStatement(CallableStatement cs) throws SQLException{
cs.execute();
MyObject myObject = new MyObject();
myObject.setMessage(cs.getString(1));
return myObject;
}
});
}
它应该是oracle.jdbc.OracleTypes.VARCHAR的相同的ID?在这里看到类似的问题:http://stackoverflow.com/questions/13158212/call-an-oracle-function-from-java – are