来自Adf的Ebs程序调用

时间:2016-02-05 10:14:21

标签: oracle stored-procedures oracle-adf oracle12c

您好我正在尝试从adf应用程序调用ebs过程。该过程采用3个输入参数并返回2 o / p。但是当我执行cs.executeUpdate()时,它显示错误Missing IN or OUT parameter at index::6任何人都可以帮我找到它吗?

HelperMethod(用AppModuleImpl编写)

    public String getEmployeeName(String username, String password) {
    CallableStatement cs = null;
    try {
        cs =
            getDBTransaction().createCallableStatement("begin ? :=APPS.XX_IE_ENTER_DELEGATION.oie_enter_delegation(?,?,?,?,?); end;",
                                                       0);
        cs.setString(1, username);
        cs.setString(2, password);
        cs.setString(3, "31442");
        cs.registerOutParameter(4, Types.INTEGER);
        cs.registerOutParameter(5, Types.VARCHAR);
        cs.execute(); // **Getting Error**
        cs.close(); 
        return cs.getString(3);
    } catch (SQLException e) {
        throw new JboException(e);
    }
}

按钮ActionListener

    public void getFromEbs(ActionEvent actionEvent) {
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("getEmployeeName");
    Object result = operationBinding.execute();
    System.out.println("Result= " + result); // result will be the output of PL function
}

1 个答案:

答案 0 :(得分:1)

由于您已将"begin ? := APPS.XX"添加到语句的开头,这意味着您正在调用函数并等待它的结果。

如果您尝试按照说明调用过程而不是函数,则应将其更改为"begin APPS.XX"