title: error code [17041]; Missing IN or OUT parameter at index:: 1; nested exception is java.sql.SQLException: Missing IN or OUT parameter at index:: 1
body: <p><strong>Procedure parameters:</strong></p>
  
  <pre><code>procedure get_user_profile (
      i_attuid in  ras_user.attuid%type,
      i_data_group in data_group_tbl,
      o_user_info_tbl out user_info_tbl,
      o_service_tbl out service_tbl,
      o_user_role_tbl out user_role_tbl,
      o_permission_tbl out permission_tbl,
      o_work_group_tbl out work_group_tbl,
      o_business_domain_tbl out business_domain_tbl,
      o_skill_tbl out skill_tbl,
      retnum               out number
  )
  </code></pre>
  
  <p><strong>Java Code:</strong></p>
  
  <pre><code>JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  jdbcTemplate.setResultsMapCaseInsensitive(true);
  
  String procedureName = "{call get_user_profile(?,?,?,?,?,?,?,?,?,?)}";
  SimpleJdbcCall simpleJdbcCall =
       new SimpleJdbcCall(jdbcTemplate).withCatalogName("ras_user_profile_pkg").withProcedureName(procedureName).declareParameters(
          new SqlParameter("i_ATTUID", Types.VARCHAR),
          new SqlParameter("I_DATA_GROUP", Types.ARRAY),
          new SqlOutParameter("O_USER_INFO_TBL", Types.ARRAY),
          new SqlOutParameter("O_SERVICE_TBL", Types.ARRAY),
          new SqlOutParameter("O_USER_ROLE_TBL", Types.ARRAY),
          new SqlOutParameter("O_PERMISSION_TBL", Types.ARRAY),
          new SqlOutParameter("O_WORK_GROUP_TBL", Types.ARRAY),
          new SqlOutParameter("O_BUSINESS_DOMAIN_TBL", Types.ARRAY),
          new SqlOutParameter("O_SKILL_TBL", Types.ARRAY),
          new SqlOutParameter("retnum", Types.NUMERIC));
  
  dataGroup = new ArrayList&lt;String&gt;();
  
  Map&lt;String, Object&gt; hm = new HashMap&lt;String, Object&gt;();
  hm.put("i_ATTUID", attuid);
  hm.put("I_DATA_GROUP", dataGroup.toArray());
  hm.put("O_USER_INFO_TBL", Types.ARRAY);
  hm.put("O_SERVICE_TBL", Types.ARRAY);
  hm.put("O_USER_ROLE_TBL", Types.ARRAY);
  hm.put("O_PERMISSION_TBL",Types.ARRAY);
  hm.put("O_WORK_GROUP_TBL", Types.ARRAY);
  hm.put("O_BUSINESS_DOMAIN_TBL", Types.ARRAY);
  hm.put("O_SKILL_TBL", Types.ARRAY);
  hm.put("retnum", Types.NUMERIC);
  
  SqlParameterSource in = new MapSqlParameterSource().addValues(hm);
  
  Map simpleJdbcCallResult = simpleJdbcCall.execute(in);
  </code></pre>
  
  <p>Please help me here (I am new two this), why I am getting this error:</p>
  
  <blockquote>
    <p>SQL state [99999]; error code [17041]; Missing IN or OUT parameter at index:: 1; nested exception is java.sql.SQLException: Missing IN or OUT parameter at index:: 1</p>
  </blockquote>