当前位置:编程学习 > JAVA >>

nested exception is java.sql.SQLException: 无效的列索引

sql语句在plsql里运行正常,但是服务器运行,就会报上上面的错 --------------------编程问答-------------------- 把相关sql语句的代码贴出来看看 --------------------编程问答--------------------
引用 1 楼 wangxf_8341 的回复:
把相关sql语句的代码贴出来看看

public Map saveOrder(HttpServletRequest request, String method)
{
String order_name = req.getValue(request, "order_name");                //订单人姓名                
String order_link_msisdn = req.getValue(request, "order_link_msisdn");  //订单人联系号码                
String operator_id = req.getValue(request, "operator_id");              //登录用户账号                
String sex = req.getValue(request, "sex");                              //订单人性别                
String order_link_addr = req.getValue(request, "order_link_addr");      //订单人联系地址                
String will_time = req.getValue(request, "will_time");                  //期望到货时间                
String is_my = req.getValue(request, "is_my");                          //是否满意                
String[] wuPins = req.getValues(request, "wuPins");                     //订单物品                
String id = req.getValue(request, "id");                                //订单id

String sql = "";
String operat = "";
String new_id = "";   //订单新id
BatchSql batchSql = new BatchSql();
if(method.equals("update"))
{
sql = "update t_order_list a set a.operator_date=sysdate, " +
"a.order_link_msisdn="+order_link_msisdn+", a.order_link_addr='"+order_link_addr+"', a.sex="+sex+", a.is_my="+is_my+", a.will_time='"+will_time+"' "+
"where a.id = "+id;
operat = "更新";
}else
{
new_id = db.getNextSequenceValue("t_order_list_s_id");                        
id = new_id;
sql = "insert into t_order_list(operator_id, operator_date, " +
"order_name, order_link_msisdn, sex, order_link_addr, will_time, " +
"is_my, id) values(?,sysdate,?,?,?,?,?,?,"+ new_id +")";
operat = "添加";
}
batchSql.addBatch(sql, new Object[]{operator_id, order_name,order_link_msisdn,order_link_addr,sex,is_my,will_time});
Map resultmap = new HashMap();

sql = "delete t_order_list_detail a where a.order_id = "+id;
batchSql.addBatch(sql, new Object[]{id});
for(String wuPin : wuPins)
{
sql = "insert into t_order_list_detail(order_id, wupin) values(?,?)";
batchSql.addBatch(sql, new Object[]{id,wuPin});
}
int result=db.doInTransaction(batchSql);
resultmap.put(Constants.RESULT, result);
if(result==1)
{
resultmap.put(Constants.SHOW, "订单【"+ order_name +"/" + order_link_msisdn + "】"+ operat +"成功!");
}
else
{
resultmap.put(Constants.SHOW, "订单【"+ order_name +"/" + order_link_msisdn + "】"+ operat +"失败!");
}
return resultmap;

} --------------------编程问答-------------------- 有些字段是非空的,而你在进行更新或新增语句的时候传进了空值
如果是直接拼sql语句,在执行之前。将这条sql打印出来,看看符不符合期望
如果是预编译语句,在执行之前,将参数值打印出来
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,