"specified as a negative number.");
Assert.state(refCursorPosition == 0 || refCursorPosition > 0,
"invalid refCursorPosition specified as " + refCursorPosition + "; there are " +
parameters.length + " parameters defined.");
CallMetaDataContext callContext = new CallMetaDataContext();
callContext.setAccessCallParameterMetaData(false);
callContext.setProcedureName(procedureName);
callContext.setFunction(function);
callContext.initializeMetaData(getDataSource());
callContext.processParameters(Arrays.asList(parameters));
SqlParameter cursorParameter = callContext.createReturnResultSetParameter("cursor", rowMapper);
this.callString = callContext.createCallString();
log.debug("Call string is: " + callString);
int cursorSqlType = Types.OTHER;
if (function) {