Hi!

We are using Oracle Database and this function call:
Code:
	m_translateProc = createFunc("OUR_FUNCTION");
	m_translateProc.addDeclaredRowMapper("p_result", new RowMapper<FooResult>() {...});

...
	MapSqlParameterSource params;
	params = new MapSqlParameterSource();
	params.addValue("p_aaa", bar);
	params.addValue("p_bbb", foo);
	result = m_translateProc.execute(params);

////
SimpleJdbcCall createFunc(String procedureName)
{
	SimpleJdbcCall jdbcCall;
		
	jdbcCall = new SimpleJdbcCall(m_dataSource).withFunctionName(procedureName);
	if(m_dataBaseCatalog!=null) {
		jdbcCall.withCatalogName(m_dataBaseCatalog);
	}
	if(m_dataBaseSchema!=null) {
		jdbcCall.withSchemaName(m_dataBaseSchema);
	}
	
	return jdbcCall;
}
The execute() call throws a org.springframework.jdbc.UncategorizedSQLException :
CallableStatementCallback; uncategorized SQLException for SQL [{? =
call TEST_FOO.OUR_FUNCTION()}]; SQL state [99999]; error code
[17041]; Missing IN or OUT parameter at index:: 1; nested exception is
java.sql.SQLException: Missing IN or OUT parameter at index:: 1

Any idea why is that happening?
Normally, if a parameter is omitted in Java code, the error is org.springframework.dao.InvalidDataAccessApiUsageE xception: Required input parameter 'P_FOOBAR' is missing

Is it something with the implicit output parameter of the function?

Aha, now I read http://static.springsource.org/sprin...ence/jdbc.html and see they use executeFunction()

Is that it? (it is hard for me to test, as we have a bit of ... distributed environment).

Regards,
David