【发布时间】:2010-10-12 23:46:09
【问题描述】:
我编写了以下 Spring JDBC API StoredProcedure 子类:
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;
}
}
调用以下Oracle函数:
FUNCTION get_ldap_properties (
in_ldap_code IN VARCHAR2
)
RETURN rowset;
但是,当我调用上述代码时,我得到以下 Oracle 异常:
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
谁能看看我做错了什么?
【问题讨论】: