oracle sys_refcursor 用法,如何使用jmeter测试带有sys_refcursor返回类型的Oracle存储过程?...

我想使用jmeter测试Oracle存储过程 . 我已经完成了除参数之外的所有操作 .

这是我的SQL查询:

声明outinfo varchar2(20); outtable sys_refcursor; begin {call RK_JSCX(?,?)};结束;

Oracle中的outtable是一个游标 . 我使用resultSet在java中包含它 . 但是,无论我在参数类型中设置什么,它都表示无效类型 .

示例开始时间:2012-10-25 16:06:41 CST加载时间:0延迟:0大小(字节):25标头大小(字节):0主体大小(字节):25样本计数:1错误计数:1响应代码: null 0响应消息:java.sql.SQLException:无效的数据类型:cursor

响应头:oracle.jdbc.driver.T4CConnection@58ba09

SampleResult字段:ContentType:text / plain DataEncoding:UTF-8

怎么解决它?谢谢!

这是我在java中的代码:

public String RK_JSCX() throws Exception {

RK_JSCX_Response response = null;

List 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();

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值