カスタム オブジェクトとして IN OUT パラメータを使用した以下のストアド プロシージャがあります。プロシージャから返されたデータを取得し、Spring ストアド プロシージャを使用して Java オブジェクトにマップしたいと考えています。
ストアド プロシージャのパラメータ:
手順 get_prev_record ( p_curr_rec_i SCRUM.employee_ot, p_prev_rec_io IN OUT SCRUM.employee_ot)
オブジェクト型宣言:
CREATE OR REPLACE TYPE CORE.EMPLOYEE_OT AS OBJECT (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) ));
しかし、出力はDBから値を返していません。SqlOutParameter を SqlInOutParameter に変更すると、以下のエラーが発生します。
「1 つのパラメーターが指定されましたが、2 つの in パラメーターがクラスで宣言されました」
出力データをJavaオブジェクトにマッピングするのを手伝ってくれませんか。