Нулевые результаты при вызове хранимой процедуры Sybase через JDBC

Я вызываю хранимую процедуру Sybase, которая возвращает несколько наборов результатов через JDBC. Мне нужно получить конкретный набор результатов, который имеет столбец с именем «Результат» Это мой код:

CallableStatement cs = conn.prepareCall(sqlCall);
cs.registerOutParameter(1, Types.VARCHAR);
cs.execute();
ResultSet rs=null;
int count = 1;
boolean flag = true;
while (count < 20000 && flag == true) {
    cs.getMoreResults();
    rs = cs.getResultSet();
    if (rs != null) {
        ResultSetMetaData resultSetMetaData = rs.getMetaData();
        int columnsCount = resultSetMetaData.getColumnCount();
        if (resultSetMetaData.getColumnName(1).equals("Result")) {
            // action code resultset found 
            flag = false;
            // loop on the resultset and add the elements returned to an array list
            while (rs.next()) {
                int x = 1;
                while (x <= columnsCount) {
                   result.add(rs.getString(x));
                   x++;
                }
            }
            result.add(0, cs.getString(1));
        }
    }
    count++;
}

Что здесь происходит, так этоcs.getMoreResults возвращает множество нулевых результатов, пока не достигнет целевого. Я не могу использоватьcs.getMoreResults как условие цикла, потому что оно возвращает false для нулевых результатов.

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

Я думаю, что нулевые результаты возвращаются из назначения в Sybaseselect @variable = value

Кто-нибудь сталкивался с этим раньше?

Ответы на вопрос(1)

Ваш ответ на вопрос