Я получаю ОШИБКУ при запуске фонового задания
Я пытаюсь запустить сервер в фоновом режиме, но получаю ошибки. Это мой сценарий PL/SQL:
DECLARE
attr_ VARCHAR2(32000);
BEGIN
client_SYS.Clear_Attr(attr_);
Client_SYS.Add_To_Attr('LINE_ITEM_NO_','8', attr_);
Client_SYS.Add_To_Attr('ORDER_NO_','92298', attr_);
Client_SYS.Add_To_Attr('RELEASE_NO_','*', attr_);
Client_SYS.Add_To_Attr('SEQUENCE_NO_','*', attr_);
Transaction_SYS.Deferred_Call('SHOP_MATERIAL_ALLOC_API.Unreserve', 'PARAMETER', attr_,'Description' );
COMMIT;
END;
Я получаю эту ОШИБКУ из фонового задания:
"Argument INFO_ is of type IN/OUT or OUT, which is not supported. ORA-20105: Transaction.WRONG_ARGUMENT"
Для процедуры требуется аргумент info_ (см. Объявление функции ниже) sà ¥ Я добавляю эту строку:
Client_SYS.Add_To_Attr('INFO_',NULL, attr_);
Но я получаю ОШИБКУ:
too many decalrations OF 'ADD_TO_ATTR' match this CALL
SHOP_MATERIAL_ALLOC_API.Unreserve(info_ => ,
attr_ => ,
order_no_ => ,
release_no_ => ,
sequence_no_ => ,
line_item_no_ => )
1 ответ
Решение
Transaction_SYS.Deferred_Call может выполняться только с процедурами с параметрами типа IN. Функции PLSQL или процедуры с параметрами IN OUT, OUT не поддерживаются.