Passe a matriz como parâmetro de entrada para um procedimento armazenado oracle usando uma chamada jdbc simples

Aqui estão as especificações do meu procedimento oracle

CREATE OR REPLACE PACKAGE PKG_RE_FI AS

  PROCEDURE PRC_RE_FI_DETAILS(P_FAN_NO       IN VARCHAR2,
                              P_REF_ID       IN TY_APP_REF_ID,
                              P_COMMENTS     IN VARCHAR2,
                              P_BILLING_FLAG IN VARCHAR2,
                              P_STATUS       OUT VARCHAR2);
END PKG_RE_FI;

TY_APP_REF_ID é

CREATE OR REPLACE TYPE ty_app_REF_ID as varray(500) of obj_array_ref_id

CREATE OR REPLACE TYPE obj_array_ref_id  AS OBJECT(
app_ref_id VARCHAR2(100)
)

Estou usando o Spring JDBC Framework (objeto SimpleJdbcCall) para executar o procedimento acima. Abaixo está o trecho de código no qual declarei

      this.reFIJdbcCall =  new SimpleJdbcCall(dataSource).withCatalogName("PKG_RE_FI").
              withProcedureName("PRC_RE_FI_DETAILS").declareParameters(new SqlParameter("P_FAN_NO", Types.VARCHAR),
                        new SqlParameter("P_REF_ID", Types.ARRAY),
                        new SqlParameter("P_COMMENTS", Types.VARCHAR),
                        new SqlParameter("P_BILLING_FLAG", Types.VARCHAR),
                        new SqlOutParameter("P_STATUS", Types.VARCHAR)
              );

Como devo passar a matriz para o

new SqlParameter("P_REF_ID", Types.ARRAY),

para MapSqlParameterSource

 MapSqlParameterSource in = new MapSqlParameterSource();

questionAnswers(2)

yourAnswerToTheQuestion