процедура вызова java пакета нет ответа - PullRequest
0 голосов
/ 01 ноября 2019

Я создал модуль API весеннего загрузочного приложения для вызова хранимой процедуры. Когда дело доходит до реализации, stmt.execute не может быть вызван без ответа. Не могли бы вы сказать мне, какой модуль или выход для модификации в моей среде Java является 1,8?

int retVal = -1;
int errCode = -1;
String errText = null;
int outPos;
int pos = 0;
System.out.println("call 2");

String SQL_SELECT = "{call database_sid.test_pkg.get_pc_lue(?,?,?,?,?,?)}";
try (Connection conn = DriverManager.getConnection(DBC_URL, USERNAME, PASSWORD);
     CallableStatement preparedStatement = conn.prepareCall(SQL_SELECT);
) {

    System.out.println("call db");

    preparedStatement.setString(++pos, "OFFER_TYPE");
    preparedStatement.setString(++pos, null); // acct srv limit

    preparedStatement.registerOutParameter(outPos = ++pos, Types.REF_CURSOR);
    preparedStatement.registerOutParameter(++pos, Types.INTEGER);
    preparedStatement.registerOutParameter(++pos, Types.INTEGER);
    preparedStatement.registerOutParameter(++pos, Types.VARCHAR);
    System.out.println("call 10");

    ResultSet resultSet = preparedStatement.executeQuery();

    System.out.println("call 11");
    while (resultSet.next()) {


        String value = resultSet.getString("LOOKUP_VALUE");
        String type = resultSet.getString("LOOKUP_TYPE");
        PcTblBPcLookUp obj = new PcTblBPcLookUp();
        obj.setLookUpValue(value);
        obj.setLookUpType(type);
        result.add(obj);
        System.out.println("call 1obecj1");
    }
    result.forEach(x -> System.out.println(x));
    System.out.println("call finish ");
} catch (SQLException e) {
    System.err.format("SQL State: %s\n%s", e.getSQLState(), e.getMessage());
} catch (Exception e) {
    e.printStackTrace();
    System.out.println("call error : " + e.getMessage());
}

1 Ответ

0 голосов
/ 01 ноября 2019

Вам нужно выполнить вашу хранимую процедуру, используя execute, а затем вам нужно получить ваш набор результатов из опций, зарегистрированных для параметра out

preparedStatement.execute();

ResultSet rs = (ResultSet) preparedStatement.getObject(outPos);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...