Я создал хранимую процедуру - она создана успешно на сервере, но когда я ее выполняю, я получаю сообщение Procedure Completed
, но оно не возвращает никакого вывода.Сохраненная процедура создана, но не возвращает результат
Процедура ниже
CREATE OR REPLACE PROCEDURE DFADMIN.USP_GETPICKLIST_DF
(
P_ORD_TYPE IN varchar2,
P_PICKLIST_OUT OUT SYS_REFCURSOR,
P_PICKLIST_ORD OUT SYS_REFCURSOR
)
AS
v_TotalOpenOrder integer;
v_AstockQty integer;
v_BstockQty integer;
v_loopCounter integer;
v_Astock integer;
v_Bstock integer;
v_TotalBStockQty integer;
BEGIN
SELECT COUNT(DISTINCT ORD_NBR) INTO v_TotalOpenOrder FROM DFADMIN.DF_ORDERS WHERE ORD_STATUS='OPEN' AND ORD_TYPE='DF';
begin
if v_TotalOpenOrder>0 then
v_BstockQty:=round(((v_TotalOpenOrder*60)/100),0);
v_AstockQty:=v_TotalOpenOrder-v_BstockQty;
select count(1) into v_Astock from DFADMIN.Ro_HIST where Process='ASTOCK' AND ORDER_TYPE='DF';
select count(1) into v_Bstock from DFADMIN.Ro_HIST where Process='BSTOCK' AND ORDER_TYPE='DF';
if (v_Bstock < v_BstockQty) then
open P_PICKLIST_OUT for
select T.QTY,T.PUTAWAY_BIN BIN,T.BOXID BOX_ID ,T.PICKQTY PICK_QTY from
(
Select sum(I.QTY) QTY, I.PUTAWAY_BIN,I.BOXID,'1' as PickQty
from (select * from DFADMIN.Ro_HIST where ORDER_TYPE='DF' and QTY<=v_Bstock order by created_date asc) I
Where BOXID in (select K.BOXID from DFADMIN.RO_HIST K)
and I.PROCESS='BSTOCK' and I.PUTAWAY_BIN is not null and QTY<=v_Bstock
group by I.PUTAWAY_BIN,I.BOXID,I.QTY, I.PROCESS,'1'
union
Select sum(I.QTY) QTY, I.PUTAWAY_BIN,I.BOXID,'1' as PICKQTY
from (select * from DFADMIN.Ro_HIST where ORDER_TYPE='DF' order by CREATED_DATE asc) I
Where BOXID in (select K.BOXID from DFADMIN.RO_HIST K)
and I.PROCESS='ASTOCK' and I.PUTAWAY_BIN is not null and QTY<=(v_TotalOpenOrder-v_Bstock) --and case when v_Bstock>0 then rownum<=(v_TotalOpenOrder-v_Bstock) else rownum>0 end
group by I.PUTAWAY_BIN,I.BOXID,I.QTY, I.PROCESS,'1'
) t order by T.QTY asc;
open P_PICKLIST_ORD for
select distinct ORD_NBR,'' QTY,'' BIN,'' BOX_ID ,'' PICK_QTY from DFADMIN.DF_ORDERS where ORD_STATUS='OPEN' AND ORD_TYPE='DF' ;
ELSE
begin
open P_PICKLIST_OUT for
select T.QTY,T.PUTAWAY_BIN BIN,T.BOXID BOX_ID ,T.PICKQTY PICK_QTY from
(
Select sum(I.QTY) QTY, I.PUTAWAY_BIN,I.BOXID,'1' as PickQty
from (select * from DFADMIN.Ro_HIST where ORDER_TYPE='DF' AND QTY<=v_Bstock order by created_date asc) I
Where BOXID in (select K.BOXID from DFADMIN.RO_HIST K)
and I.PROCESS='BSTOCK' and I.PUTAWAY_BIN is not null and QTY<=v_BstockQty
group by I.PUTAWAY_BIN,I.BOXID,I.QTY, I.PROCESS,'1'
union
Select sum(I.QTY) QTY, I.PUTAWAY_BIN,I.BOXID,'1' as PICKQTY
from (select * from DFADMIN.Ro_HIST WHERE ORDER_TYPE='DF' order by CREATED_DATE asc) I
Where BOXID in (select K.BOXID from DFADMIN.RO_HIST K)
and I.PROCESS='ASTOCK' and I.PUTAWAY_BIN is not null and QTY<=(v_TotalOpenOrder-v_BstockQty) --and case when v_Bstock>0 then rownum<=(v_TotalOpenOrder-v_Bstock) else rownum>0 end
group by I.PUTAWAY_BIN,I.BOXID,I.QTY, I.PROCESS,'1'
) t order by T.QTY asc;
open P_PICKLIST_ORD for
select distinct ORD_NBR,'' QTY,'' BIN,'' BOX_ID ,'' PICK_QTY from DFADMIN.DF_ORDERS where ORD_STATUS='OPEN' AND ORD_TYPE='DF';
end ;
end if;
end if;
end;
END USP_GETPICKLIST_DF;
В этой процедуре есть один входной параметр и 2 выходной параметр.
Как вы его выполняете? Что вы передаете для двух параметров OUT, и как вы пытаетесь отображать/использовать результаты? –