Возврат строк данных из вызванной хранимой процедуры с использованием курсоров
Я пытаюсь написать хранимую процедуру Oracle, которая вызовет пять (5) вложенных хранимых процедур для всех Билла (bill_id_tab) в конкретном наборе результатов. Я использую FOR
цикл, и единственный набор возвращаемых данных это самый последний Билл. Я предполагаю, что он записывает данные ПОСЛЕ FOR..LOOP
завершено, а не во время. Я не уверен, как заставить его записывать каждый набор результатов во время обработки.
Вот мой код:
BEGIN
DECLARE
v_bill_id CHAR(12);
v_batch_nbr NUMBER(10);
--define cursor
cursor bill_id_tab is (SELECT BILL_ID
FROM CI_BILL_ROUTING
WHERE BATCH_NBR = (SELECT MAX(BATCH_NBR)
FROM CI_BILL_ROUTING
WHERE BATCH_CD = 'DGRTPOST')
AND BATCH_CD = 'DGRTPOST')
ORDER BY BILL_ID;
BEGIN
/******************************************************************************
get bill_id's for all bills generated in the max Batch_nbr.
Batch_cd will be used to seperate
******************************************************************************/
BEGIN
FOR each BILL_ID IN bill_id_tab LOOP
BEGIN
RPTUSER.CM_DGBILLPB_HP2(p_info_cursor1, NULL, rec.BILL_ID, NULL, NULL);
RPTUSER.CM_DGBILLPR_HP(p_info_cursor2, rec.BILL_ID);
RPTUSER.CM_DGBILLMS_HP(p_info_cursor3, rec.BILL_ID, 'C');
RPTUSER.CM_DGBILLCG_HP(p_info_cursor4, rec.BILL_ID);
RPTUSER.CM_DGBILLMR_HP(p_info_cursor5, rec.BILL_ID);
END;
END LOOP;
END;
END;
Счета, для которых я ожидаю увидеть данные:
819244555299
819246299764
819248391148
951891843093
951896713417
951897314849
Единственный набор результатов, который возвращается - Bill_ID - 951897314849
,
Любое руководство будет оценено.
Заранее спасибо.