Как использовать jmeter для тестирования хранимой процедуры Oracle с типом возвращаемого значения sys_refcursor?

Я хочу протестировать хранимую процедуру Oracle с помощью jmeter.Я сделал все, кроме параметров.

И вот мой SQL-запрос:

объявить outinfo varchar2 (20); outtable sys_refcursor; begin {call RK_JSCX (?,?)}; конец;

Outtable в Oracle - это курсор. И я использовал resultSet, чтобы содержать его в java. Однако, что бы я ни указывал в типах параметров, он указывал недопустимый тип.

Начало образца: 2012-10-25 16:06:41 CST Время загрузки: 0 Время ожидания: 0 Размер в байтах: 25 Размер заголовка в байтах: 0 Размер тела в байтах: 25 Количество образцов: 1 Количество ошибок: 1 Код ответа: ноль 0 Ответное сообщение: java.sql.SQLException: неверный тип данных: курсор

Заголовки ответа: [email protected]

Поля SampleResult: ContentType: текст / обычный DataEncoding: UTF-8

Как это можно исправить? Спасибо!

Вот мой код в Java:

public String RK_JSCX() throws Exception {

    RK_JSCX_Response response = null;
    List<RK_JSCX_Outtable> list = null;
    Connection con = null;
    CallableStatement cs = null;
    ResultSet rs = null;
    String sql = null; 
    try {
        sql = "{call RK_JSCX(?,?)}";
        con = ConnectionUtils.getInstance().getConnect();

        if (con.isClosed()) {
            throw new IllegalStateException("ERROR.THE   CONNECTION   ISCLOSED");
        }

        cs = con.prepareCall(sql);
        cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
        cs.registerOutParameter(2, Types.VARCHAR);

        cs.execute();

        rs = (ResultSet) cs.getObject(1);
        list = new ArrayList<RK_JSCX_Outtable>();
        while (rs.next()) {

            RK_JSCX_Outtable out = new RK_JSCX_Outtable(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5), rs.getString(6));

            list.add(out);
        }
        String outInfo = cs.getString(2);
        response = new RK_JSCX_Response(list, outInfo);

    } catch (SQLException e) {

        e.printStackTrace();

    } catch (Exception e) {
        e.printStackTrace();

    }finally {

        try {
            if (rs != null) {
                rs.close();
                if (cs != null) {
                    cs.close();
                }
                if (con != null) {
                    con.close();
                }
            }
        } catch (SQLException e) {

            System.out.println("Exception2");
            e.printStackTrace();
        }
    }
    return JSON.toJSONString(response);
}

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

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