Как сказано в заголовке, я хотел бы знать, можно ли назначить несколько курсоров ref (в Oracle хранимой процедуре) одному: Как следующий код: ....
create or replace procedure assign_ref_cursor(result_cur out sys_refcursor)
as
cursor1 sys_refcursor;
cursor2 sys_refcursor;
cursor3 sys_refcursor;
-- expected result:
result_cur[0] = cursor1
result_cur[1] = cursor2
result_cur[2] = cursor3
...
return result_cur;
... Хорошо, что было бы неплохо, если бы весь результат каждого ref_cursor был в одном.
Причина в том, что я получаю данные (множественный указатель ref) из хранимой процедуры, используя Данные Spring JPA. Но, по-видимому, нет решения для получения нескольких курсоров ref с помощью javax.persistence.storedprocedurequery ... несмотря на дни поиска в Google ...
Итак, я представил решение, чтобы изменить хранимую процедуру Oracle, чтобы вернуть только один ref_cursor, который «объединяет» разные ref_cursor.
Следуя вопросу Алекса, вот UPDATE
Я попытался вызвать три параметра OUT ref курсора, используя:
StoredProcedureQuery proc = entityManager.createStoredProcedureQuery("myStoredProc");
proc.registerStoredProcedureParameter("cursor1", void.class, ParameterMode.REF_CURSOR);
proc.registerStoredProcedureParameter("cursor2", void.class, ParameterMode.REF_CURSOR);
...
List<Object[]> listOfObjects = proc.getResultList();
Но listOfObjects содержит только содержимое cursor1 Невозможно получить содержимое cursor2 ...