Hello.
On an sql treatment, I had to update a custom procedure to return a value, for that, I added a new parameter with the “out” key, so the new signature is :
PROCEDURE SFD_EV_SC_053(
p_order_no_ varchar2,
p_line_no_ varchar2,
p_rel_no_ varchar2,
p_line_item_no_ varchar2,
p_shipment_id out float
)
On an old event, this same procedure is called but in a deferred way, so the code is :
Client_SYS.Clear_Attr(attr_);
Client_SYS.Add_To_Attr('P_ORDER_NO_', '&NEW:ORDER_NO' , attr_);
Client_SYS.Add_To_Attr('P_LINE_NO_', '&NEW:LINE_NO' , attr_);
Client_SYS.Add_To_Attr('P_REL_NO_', '&NEW:REL_NO' , attr_);
Client_SYS.Add_To_Attr('P_LINE_ITEM_NO_', '&NEW:LINE_ITEM_NO' , attr_);
Client_SYS.Add_To_Attr('P_SHIPMENT_ID', v_shipment_id , attr_);
transaction_sys.deferred_call('MYPACKAGE_API.SFD_EV_SC_053','PARAMETER',attr_ ,'#SQL Treatment');
But it seems that PL/SQL doesn’t support the call of such a procedure in a deferred way, or maybe the call must be different. The error code that I’m getting is “ORA-20105: Transaction.WRONG_ARGUMENT”.
What’s the way to fix this issue? or maybe I just have to duplicate the procedure to support deferred calls?
Thanks