51Testing软件测试论坛

标题: Oracle 2-Tier怎样获取到存储过程的返回值? [打印本页]

作者: 5555    时间: 2009-9-3 12:08
标题: Oracle 2-Tier怎样获取到存储过程的返回值?
存储过程如下,两个输入参数、两个输出参数:
begin
  -- Call the procedure
   p_test(o_ret_code => : o_ret_code,
           o_ret_msg  => : o_ret_msg,
           ac_i_tid   => :ac_i_tid,
           ac_i_note  => :ac_i_note);
end;
LR脚本如下,
lrd_ora8_stmt(OraStm1, "BEGIN p_test(:v_code,:v_msg,'7','7777'); END;",1, 0, 0);
lrd_assign(&P1D10, 0, 0, 0, 0);
lrd_ora8_bind_placeholder(OraStm1, &OraBnd3, "1", &P1D10,LRD_BIND_BY_POS, 0, 0);
lrd_assign(&P2D11, 0, 0, 0, 0);
lrd_ora8_bind_placeholder(OraStm1, &OraBnd2, "2", &P2D11,LRD_BIND_BY_POS, 0, 0);
lrd_ora8_attr_set(OraBnd2, CHARSET_FORM, "1", -1, 0);

lrd_ora8_exec(OraSvc1, OraStm1, 1, 0,&rownum, 0, 0, 0, 0, 1);

问题是:怎么样才能获取得到:v_code,v_msg这两个参数,并在LR中打印出来? 请指教~
作者: linlinxu    时间: 2009-9-3 13:21
你的v_code,v_msg是输入参数还是输出参数,看你这样写的的话应该是输出参数,如果是输出参数的话为什么还需要知道获取它呢?至于具体的输出,可以使用相关的输出函数lr_output_message 或其他相关函数就可以了。
作者: 5555    时间: 2009-9-3 14:00
多谢楼上的回复~

v_code,v_msg 是存储过程的输出值,现在要在 LR脚本中得到这两个值,如果直接使用
lr_error_message("sql result: %s", lr_eval_string("{v_code}")); 应该是不行的
作者: GeorgeWangLC    时间: 2009-9-3 16:38
输出数组,试试
作者: oldsuper    时间: 2010-4-21 11:40
还是没有解决阿




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2