尝试从ADF调用SQL包函数

时间:2016-05-22 11:45:21

标签: java sql oracle-adf

我需要从ADF中的java代码调用的包中有以下函数

FUNCTION COPY_ITEM(O_error_message        IN OUT    VARCHAR2,
                     I_master_order   IN        FFE_ITEM.MASTER_ORDER%TYPE,
                     I_item           IN        FFE_ITEM.ITEM%TYPE,
                     O_new_item       OUT       FFE_ITEM.ITEM%TYPE)
return NUMBER;

以下是我试图用

调用它的代码
        String stmt = "FFE_CREATE_ITEM.COPY_ITEM(?,?,?,?)";
        cst = this.getDBTransaction().createCallableStatement("begin ? := " + stmt + ";end;", 0);
        //Register dataType for return value
        cst.registerOutParameter(2, Types.VARCHAR);
        cst.registerOutParameter(3, Types.NUMERIC);
        cst.registerOutParameter(4, Types.VARCHAR);
        cst.registerOutParameter(5, Types.VARCHAR);

        cst.setObject(2 , errorO);
        cst.setObject(3 , orderNum);
        cst.setObject(4 , itemNum);
        cst.setObject(5 , newItemNum);

        cst.executeUpdate();

但是我一直得到一个oracle.jbo.JboException:索引1错误时缺少IN或OUT参数。

不确定我做错了什么,任何提示都会很棒。我想我没有注册返回值,但不知道如何做到这一点。

0 个答案:

没有答案