Если это действительно единственные шаги - т.е. вы не делаете ничего важного в Java между двумя вызовами - тогда для меня имеет больше смысла вообще не возвращаться в Java.
Если бы первая процедура была на самом деле функцией, вы могли бы просто сделать один вложенный вызов:
BEGIN proc2(proc1(...)); END;
Курсор передается в Oracle и вообще не нуждается в обработке Java.
Если ваша первая процедура - это процедура, которая возвращает курсор в качестве параметра OUT, вы можете написать для него функцию-обертку и сделать то же самое:
CREATE OR REPLACE FUNCTION func1(...)
RETURN SYS_REFCURSOR
AS
foo SYS_REFCURSOR;
BEGIN
proc1(..., foo);
RETURN foo;
END func1;
/
Тогда BEGIN proc2(func1(...)); END;
должен работать.
Теперь, если вам действительно нужно выходить на Java между двумя вызовами, тогда я попытался бы использовать OracleTypes.CURSOR
при получении выходного значения из первой процедуры, а затем просто передать этот объект во вторую процедуру. Я не знаю, будет ли это работать; если нет, то, вероятно, нет прямого способа сделать это.