1

我正在尝试启动服务器的后台,但出现错误。这是我的 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_ 参数(请参阅下面的函数声明),例如我添加了这一行:

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_ => )
4

1 回答 1

1

Transaction_SYS.Deferred_Call 只能在带有IN类型参数的过程中执行。不支持带有 IN OUT、OUT 参数的 PLSQL 函数或过程。

于 2019-10-11T15:21:25.613 回答