1

我有以下存储过程,其中 IN OUT 参数作为自定义对象。我想获取从过程返回的数据,并使用 spring 存储过程将其映射到 java 对象。

存储过程参数:

PROCEDURE get_prev_record (p_curr_rec_i SCRUM.employee_ot, p_prev_rec_io IN OUT SCRUM.employee_ot)

对象类型声明:

创建或替换类型 CORE.EMPLOYEE_OT 作为对象 (SCRUM.EMPLOYEE_ID NUMBER (18), SCRUM.EMPLOYEE_NAME VARCHAR2 (30));

我使用经典的存储过程定义了以下参数。

Spring存储过程参数:

declareParameter(new SqlParameter("p_curr_rec_i",OracleTypes.STRUCT,"SCRUM.EMPLOYEE_OT"));

declareParameter(new SqlOutParameter("p_prev_rec_io",OracleTypes.STRUCT,"SCRUM.EMPLOYEE_OT",new SqlReturnStruct(Employee.class) ));

但是输出没有从数据库返回任何值。当我将 SqlOutParameter 更改为 SqlInOutParameter 时,出现以下错误。

“提供了 1 个参数,但在类中声明了 2 个参数”

谁能帮我用java对象映射输出数据。

4

0 回答 0