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