Как вызвать программный модуль из форм оракула, используя Java - PullRequest
0 голосов
/ 24 сентября 2019

Мне нужно вызвать функцию PL / SQL, которая находится в формах Oracle, а не в базе данных.У кого-нибудь есть идеи, как это сделать?

Поиск в Интернете Я нашел способ вызова метода Java в функции PL / SQL, но никак не наоборот.Мне нужно захватить эту функцию, которая находится внутри форм 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);
    }

Проблема в том,что функция находится не в базе данных, а внутри форм оракула, и я не знаю, есть ли способ получить к ней доступ.

...