62,614
社区成员
发帖
与我相关
我的任务
分享
error is:批处理中出现错误: ORA-00913: 值过多
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:415)
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:455)
at oracle.jdbc.driver.OracleStatement.executeBatch(OracleStatement.java:3961)
at weblogic.jdbc.wrapper.Statement_oracle_jdbc_driver_T4CStatement.executeBatch(Unknown Source)
at com.iyongxin.javabean.DBManager.executeUpdate(DBManager.java:369)
at com.iyongxin.javabean.Tb_assetsprocessManager.dispose(Tb_assetsprocessManager.java:437)
at com.iyongxin.adapter.Tb_assetsprocessAdapter.dispose(Tb_assetsprocessAdapter.java:346)
at jsp_servlet._fams.__tb_assetsprocess_dispose_general._jspService(__tb_assetsprocess_dispose_general.java:144)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
public int dispose(Object[][] o) {
if (o == null || o.length < 1)return 0;
int r =0;
String keys = "";
String serialnum="",disposetype="",assetsindept="",assetsoutdept="",assetsprocessid="";
for(int i=0;i<o[0].length;i++)
keys+= "'" + o[0][i].toString()+"',";
keys = keys.substring(0,keys.length()-1);
String sql = "select * from tb_assetsprocess where ischecked='已反馈' and assetsprocessid in ("+keys+")";
CachedRowSet crs = DBManager.executeQuery(sql);
StringBuffer sb = new StringBuffer();
try {
//conn =DBManager.getConnection();
while (crs.next()) {
serialnum=crs.getString("serialnum");
disposetype=crs.getString("disposetype");
assetsindept=crs.getString("assetsindept");
assetsoutdept=crs.getString("assetsoutdept");
assetsprocessid=crs.getString("assetsprocessid");
if(disposetype.equals("调拨转让")){
//将卡片记录复制到历史表
sb.append("insert into tb_assetscard_history select tb_assetscard.*,sysdate from tb_assetscard where serialnum='"+serialnum+"';");
//卡片记录里assetsadmindeptid改为调入单位
sb.append("update tb_assetscard set getmode='调入', ASSETSWRIDATE=sysdate,assetsadmindept='"+DepartmentManager.getInstance().getByKey(assetsindept).getDepname()+"',assetsadmindeptid='"+assetsindept+"'where serialnum='"+serialnum+"';");
}else{
//将卡片记录复制到历史表
sb.append("insert into tb_assetscard_history select tb_assetscard.*,sysdate from tb_assetscard where serialnum='"+serialnum+"';");
//删除卡片记录
sb.append("delete from tb_assetscard where serialnum='"+serialnum+"';");
}
//审批状态设为已处置
sb.append("update tb_assetsprocess set disposeperson=applyperson,disposedate=sysdate, ischecked='已核销' where assetsprocessid='"+assetsprocessid+"';");
//sb = sb.substring(0,sb.length()-1);
DBManager.executeUpdate(sb.toString().split(";"));
r++;
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
//DBManager.cleanup(conn,null,null);
}
return r;
}