I've written the following Spring JDBC API StoredProcedure sub-class:
Which calls the following Oracle function:Code:class GetLdapPropertiesStoredProcedure extends StoredProcedure { protected GetLdapPropertiesStoredProcedure(JdbcTemplate jdbcTemplate) { super(jdbcTemplate, "get_ldap_properties"); setFunction(true); declareParameter(new SqlReturnResultSet("rs", new ProductPropertiesMapper())); declareParameter(new SqlParameter("in_ldap_code", Types.VARCHAR)); compile(); } public Properties execute(String productCode) { HashMap input = new HashMap(); input.put("in_ldap_code", productCode); Map results = execute(input); Collection<Map.Entry<Object,Object>> entries = (Collection<Map.Entry<Object,Object>>) results.get("rs"); Properties properties = new Properties(); properties.entrySet().addAll(entries); return properties; } }
However, when I call the above I get the following Oracle exception:Code:FUNCTION get_ldap_properties ( in_ldap_code IN VARCHAR2 ) RETURN rowset;
Can anyone please see what I'm doing wrong?Code:java.sql.SQLException: ORA-06550: line 1, column 13: PLS-00306: wrong number or types of arguments in call to 'GET_LDAP_PROPERTIES' ORA-06550: line 1, column 7: PL/SQL: Statement ignored


Reply With Quote