1.存储过程的出参是一个游标,怎么去取值。
解决:
法一:设置成-10。这种最简单
c.registerOutParameter(6,-10);
c.registerOutParameter(6,-10);
法二:必须要导入游标的jar包,即可。
c.registerOutParameter(6,mcrs.CURSOR);
//var para = "{\"reqId\":\"345678\",\"action\":\"dictList\",\"param\":{},\"licence\":\"qmg\"}";
//
//var str = CallHttp(para);
//$c('str',str);
var mcrs = new Packages.ygly.TestYouBiao();
//var result = new Packages.java.sql.ResultSet();
var id_no = msg['ControlActProcess']['id_no'].toString();
var card_type = msg['ControlActProcess']['card_type'].toString();
var channel_flag = msg['ControlActProcess']['channel_flag'].toString();
var con = GetConnection("HIS");
var dncon=con.getConnection();
var c=dncon.prepareCall("{call appuser.APP_201_PAT_INDEX.Pro_Get_PatientInfo(?,?,?,?,?,?)}");
c.setString(1,id_no);
c.setString(2,card_type);
c.setString(3,"");
c.registerOutParameter(4,java.sql.Types.DECIMAL);
c.registerOutParameter(5,java.sql.Types.VARCHAR);
c.registerOutParameter(6,mcrs.CURSOR);
c.execute();
var statecode = c.getBigDecimal(4);
$c('statecode',statecode);
var msgcode = c.getString(5);
$c('msgcode',msgcode);
var result = mcrs.ToTransResultSet(c.getObject(6));
while(result.next()){
var ss = result.getString(1);
$c('ss',ss);
}