Я получаю ОШИБКУ при запуске фонового задания

Я пытаюсь запустить сервер в фоновом режиме, но получаю ошибки. Это мой сценарий 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 не поддерживаются.

Другие вопросы по тегам