如何解决使用存储过程执行时executeUpdate不起作用
executeUpdate返回1,但是没有将值插入表中。 “ CR_SAVEHBCRPERFORMA”是插入值的过程。输出参数在执行完否则返回0后返回1,在这里返回0 ..(某些代码缺少bcoz的长度 )
Connection con = null;
CallableStatement cstmt1 = null;
DataSource ds = null;
ResultSet rs = null;
try {
String REGNO = request.getParameter("regNo");
String CENTERNAME = request.getParameter("center");
String DIAGNOSISDATE = request.getParameter("firstDiag");
RccDataSources rccDS = new RccDataSources();
ds = rccDS.getOncoLiveDS();
con = ds.getConnection();
cstmt1 = con.prepareCall("{CALL CR_SAVEHBCRPERFORMA(?,?,?)}");
cstmt1.setString(1,REGNO);
cstmt1.setString(2,CENTERNAME);
cstmt1.setString(3,DIAGNOSISDATE);
cstmt1.setString(4,SOURCEREG);
cstmt1.setString(5,SOURCEREF);
cstmt1.setString(6,LABNO);
cstmt1.setString(7,FIRSTSEENDATE);
cstmt1.setString(8,EDUCATION);
cstmt1.setString(28,TREATMENTRITYPE);
cstmt1.setString(29,STATUSFOLLOWUP);
cstmt1.setString(30,DISEASESTATUS);
cstmt1.setString(31,REMARK);
cstmt1.registerOutParameter(32,Types.INTEGER);
cstmt1.executeUpdate();
int x = cstmt1.getInt(32);
}
}
}
解决方法
使用
cstmt1.execute();
例如
stmt.setString(1,doc_number);
stmt.setString(2,doc_type);
stmt.setString(3,line_number);
stmt.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR);
stmt.execute();
cursor = stmt.getCursor(4);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。