Java Spring Jdbc的Oracle Sql函数返回类型
我有一个sql函数(不知道sql) 我使用SpringJDBC模板调用这个函数Java Spring Jdbc的Oracle Sql函数返回类型,java,oracle,spring,function,jdbc,Java,Oracle,Spring,Function,Jdbc,我有一个sql函数(不知道sql) 我使用SpringJDBC模板调用这个函数 SimpleJdbcCall caller = new SimpleJdbcCall(this.jdbcTemplateMartinique).withSchemaName("RATELIMIT_OWN").withFunctionName("Get_Conns_By_Login_IP_CallerId").withReturnValue() .declareParameters(new S
SimpleJdbcCall caller = new SimpleJdbcCall(this.jdbcTemplateMartinique).withSchemaName("RATELIMIT_OWN").withFunctionName("Get_Conns_By_Login_IP_CallerId").withReturnValue()
.declareParameters(new SqlParameter(P_YYYYMM, Types.VARCHAR))
.declareParameters(new SqlParameter(P_LOGIN, Types.VARCHAR))
.declareParameters(new SqlParameter(P_FRAMED_IP, Types.VARCHAR))
.declareParameters(new SqlParameter(P_CALLER_ID, Types.VARCHAR));
SearchAccountBean resultBean = null;
SqlParameterSource paramMap = new MapSqlParameterSource().addValue(P_YYYYMM, searchAccountBean.getDate(), Types.VARCHAR).addValue(P_LOGIN, searchAccountBean.getLogin(), Types.VARCHAR)
.addValue(P_FRAMED_IP, searchAccountBean.getIpAddress(), Types.VARCHAR).addValue(P_CALLER_ID, searchAccountBean.getCaller(), Types.VARCHAR);
caller.compile();
Object result = caller.executeFunction(Object.class, paramMap);
现在它抛出了无效的列类型1111。
我调试后发现它返回“返回SQL类型1111”
我想知道如何在java中检索function result的值。这看起来像是我最近通过为输出参数注册“类型处理程序”解决的问题。诀窍是为SqlOutParameter注册SqlReturnType。接口的方法getTypeValue()允许您处理来自Oracle结构的信息,该结构很可能是您的类型在JDBC中的表示形式 您可以在此处找到更多详细信息:
这看起来像是我最近刚刚通过为输出参数注册“类型处理程序”解决的问题。诀窍是为SqlOutParameter注册SqlReturnType。接口的方法getTypeValue()允许您处理来自Oracle结构的信息,该结构很可能是您的类型在JDBC中的表示形式 您可以在此处找到更多详细信息:
SimpleJdbcCall caller = new SimpleJdbcCall(this.jdbcTemplateMartinique).withSchemaName("RATELIMIT_OWN").withFunctionName("Get_Conns_By_Login_IP_CallerId").withReturnValue()
.declareParameters(new SqlParameter(P_YYYYMM, Types.VARCHAR))
.declareParameters(new SqlParameter(P_LOGIN, Types.VARCHAR))
.declareParameters(new SqlParameter(P_FRAMED_IP, Types.VARCHAR))
.declareParameters(new SqlParameter(P_CALLER_ID, Types.VARCHAR));
SearchAccountBean resultBean = null;
SqlParameterSource paramMap = new MapSqlParameterSource().addValue(P_YYYYMM, searchAccountBean.getDate(), Types.VARCHAR).addValue(P_LOGIN, searchAccountBean.getLogin(), Types.VARCHAR)
.addValue(P_FRAMED_IP, searchAccountBean.getIpAddress(), Types.VARCHAR).addValue(P_CALLER_ID, searchAccountBean.getCaller(), Types.VARCHAR);
caller.compile();
Object result = caller.executeFunction(Object.class, paramMap);