Как перебрать несколько результирующих наборов в весеннем JDBC, используя CallableStatementCreator,CallableStatementCallback?
emp_details(emp_name,emp_id,arr_shirt_color,arr_bag_color,days_present, days_absent);
рассмотреть emp_details это процедура, где
emp_name IN varchar2,
emp_id IN varchar2,
arr_shirt_color OUT arr_shirt,
arr_bag_color OUT arr_bag,
days_present OUT number,
days_absent OUT number
arr_bag и arr_shirt идут так
TYPE arr_bag is table of varchar2(6) index by binary_integer;
TYPE arr_shirt is table of varchar2(6) index by binary_integer;
здесь arr_bag_color, arr_shirt_color дает коллекцию оракулов в качестве выходных данных для ex: она дает ["red","black","blue","yellow"].
Как перебрать результирующий набор этого в вызываемых операторах, поскольку есть 4 вывода, в которых 2 являются коллекциями оракула? Пожалуйста, предложите.
return jdbc.execute(new CallableStatementCreator() {
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException
{
callableStatement cs= con.prepareCall( call emp_details(?,?,?,?,?,?));
cs.setString("emp_name","XXX")
..
..
}
}, new CallableStatementCallback<Set<ResultSet>>() {
@Override
public Set<ResultSet> doInCallableStatement(CallableStatement cs) throws SQLException
{
Set<ResultSet> results = new HashSet<>();
boolean resultsAvailable = cs.execute();
while (resultsAvailable)
{
results.add(cs.getResultSet());
resultsAvailable = cs.getMoreResults();
}
return results;
}
});
Я должен сделать подобное