Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java从oracle窗体调用程序单元_Java_Oracle_Oracleforms - Fatal编程技术网

如何使用java从oracle窗体调用程序单元

如何使用java从oracle窗体调用程序单元,java,oracle,oracleforms,Java,Oracle,Oracleforms,我需要调用Oracle表单中而不是数据库中的PL/SQL函数。有人知道怎么做吗 通过搜索internet,我找到了如何在PL/SQL函数中调用Java方法,但不是相反。我需要捕获这个函数,它位于Oracle窗体(程序单元)中,并传递必要的参数,以便模拟自动测试的行为。我感谢你们所有人的帮助 我将尝试举例说明。在我的OracleForms中,我有以下功能: FUNCTION FN_MYFUNCTION_WS(P_CD_PERSON NUMBER,P_CD_TYPE VARCHAR2 DEFAULT

我需要调用Oracle表单中而不是数据库中的PL/SQL函数。有人知道怎么做吗

通过搜索internet,我找到了如何在PL/SQL函数中调用Java方法,但不是相反。我需要捕获这个函数,它位于Oracle窗体(程序单元)中,并传递必要的参数,以便模拟自动测试的行为。我感谢你们所有人的帮助

我将尝试举例说明。在我的OracleForms中,我有以下功能:

FUNCTION FN_MYFUNCTION_WS(P_CD_PERSON NUMBER,P_CD_TYPE VARCHAR2 DEFAULT 'V') RETURN NUMBER IS
vRetorno number := 1;
BEGIN
   /*code here*/
End;
如果函数保存在数据库中,我可以使用CallableStatement对象访问它,如下所示:

    Connection conn = ConnectionFactory.getInstance().getConnection();
    if (conn != null) {

        CallableStatement cstm = conn.prepareCall("begin ? := fn_myfunction_ws(?, ?); end;");
        cstm.registerOutParameter(1, Types.VARCHAR);
        cstm.setInt(2, cdPerson);
        cstm.setString(3, "V");
        cstm.executeUpdate();
        String outFunc = cstm.getString(1);
    }

问题是该函数不在数据库中,而是在oracle forms中,我不知道是否有办法访问它。

将表单中的pl/sql函数移动到数据库中的包中,然后从表单和java中调用它。不幸的是,这不是一个选项。好吧,那么你可能运气不好,然后你可以通过编辑你的问题来分享一个关于你的PL/SQL函数和java方法的具体例子。@BarbarosÖzhan我用示例代码编辑了这篇文章。