2012-05-14 11:05:26,465 [com.database.DataBaseOperator]-[INFO] 查询语句为:select a.order_id,to_char(a.createtime,'yyyy-MM-dd') createtime,a.user_grade,b.order_id,b.shopping_number,b.unitprice,b.totalprice,(case b.issend when 1 then '已经发货'when 0 then '暂未发货'end),b.trade_price,b.trade_total from orderr a, order_info b where 1 = 1 and a.order_id = b.order_id
2012-05-14 11:05:26,502 [com.database.DataBaseOperator]-[INFO] select a.order_id,to_char(a.createtime,'yyyy-MM-dd') createtime,a.user_grade,b.order_id,b.shopping_number,b.unitprice,b.totalprice,(case b.issend when 1 then '已经发货'when 0 then '暂未发货'end),b.trade_price,b.trade_total from orderr a, order_info b where 1 = 1 and a.order_id = b.order_id /n共查询1条记录!
2012-05-14 11:05:26,503 [com.lb.nt.clientAPI.Operator.JsonUtil]-[INFO] 正在进行List转换成JSON操作...............
2012-05-14 11:05:26,561 [com.lb.nt.clientAPI.Operator.JsonUtil]-[INFO] 将List转换成JSON操作完成!
2012-05-14 11:05:26,601 [com.log.SystemLog]-[ERROR] java.sql.SQLException: ORA-00984: 列在此处不允许java.sql.SQLException: ORA-00984: 列在此处不允许 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1141)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2149)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2032)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2894)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:875)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at com.log.SystemLog.insertLog(SystemLog.java:37)
at com.developer_order.OrderService.getOrderEmerge(OrderService.java:70)
at org.apache.jsp.order.developers_005forder_jsp._jspService(developers_005forder_jsp.java:69)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2012-05-14 11:05:26,502 [com.database.DataBaseOperator]-[INFO] select a.order_id,to_char(a.createtime,'yyyy-MM-dd') createtime,a.user_grade,b.order_id,b.shopping_number,b.unitprice,b.totalprice,(case b.issend when 1 then '已经发货'when 0 then '暂未发货'end),b.trade_price,b.trade_total from orderr a, order_info b where 1 = 1 and a.order_id = b.order_id /n共查询1条记录!
2012-05-14 11:05:26,503 [com.lb.nt.clientAPI.Operator.JsonUtil]-[INFO] 正在进行List转换成JSON操作...............
2012-05-14 11:05:26,561 [com.lb.nt.clientAPI.Operator.JsonUtil]-[INFO] 将List转换成JSON操作完成!
2012-05-14 11:05:26,601 [com.log.SystemLog]-[ERROR] java.sql.SQLException: ORA-00984: 列在此处不允许java.sql.SQLException: ORA-00984: 列在此处不允许 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1141)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2149)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2032)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2894)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:875)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at com.log.SystemLog.insertLog(SystemLog.java:37)
at com.developer_order.OrderService.getOrderEmerge(OrderService.java:70)
at org.apache.jsp.order.developers_005forder_jsp._jspService(developers_005forder_jsp.java:69)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2012-05-14 11:05:26,601 [com.log.SystemLog]-[ERROR] java.sql.SQLException: ORA-00984: 列在此处不允许
先把 case 那里加个别名。
然后贴出代码。
JSONArray jsonArray = null;
String developer_id = OperateSession.getSession(request, "developer_id").toString(); //获得商家ID;
String developer_type = OperateSession.getSession(request, "developer_type").toString(); //用户类型
String order_id = StringUtil.getRequestString(request, "a.order_id"); //订单的编号
String goodsname = StringUtil.getRequestString(request, "goodsname"); //商品名称
String begintime = StringUtil.getRequestString(request, "begintime"); //开始时间
String endtime = StringUtil.getRequestString(request, "endtime"); //结束时间
StringBuffer sql = new StringBuffer ("select a.order_id,to_char(a.createtime,'yyyy-MM-dd') createtime,a.user_grade,b.goodsname,b.shopping_number,b.unitprice,b.totalprice,(case b.issend when 1 then '已经发货'when 0 then '暂未发货'end),b.trade_price,b.trade_total from orderr a, order_info b where 1 = 1 and a.order_id = b.order_id " );
//条件查询开始 and b.developer_id = '"+developer_id+"'
if(order_id!="") { //判断订单编号是否为空
sql.append (" and order_id = "+ order_id); //执行SQL语句将订单编号为条件
}
if(goodsname!=""){ //判断商品名称是否为空
sql.append(" and goodsname = "+goodsname); //执行SQL语句将商品名称为条件
}
if(begintime!=""||endtime!=""){ //判断起始时间与结束时间是否为空
sql.append(" and a.createtime between to_char('"+begintime+"','yyyy-MM-dd hh24:mi:ss') and to_char('"+endtime+"','yyyy-MM-dd hh24:mi:ss')");
} //执行查询时间区间
List<DynaBean> list = DataBaseOperator.queryList(sql.toString());
jsonArray = JsonUtil.listDynaBeanToJson(list);
return jsonArray;
自己根据日志向下找吧...另:sql语句拷贝到数据库IDE中执行,以确认sql语句是否正确无误。
ORA-00984: column not allowed here
看了看values里的值,好像没有什么问题
再仔细看发现大部分字段值都是数字,唯独有一个字段是 S001,这个字段是char(8)
不会是这的问题吧,给它加了一个单引号 'S001'。
再次执行好了。
原来是没有办法转换了
这里我还在考虑一个问题:oracle 数据库里的数据到底是以什么样的格式存储的?
oerr ora 984
00984, 00000, "column not allowed here"
// *Cause:
// *Action:
看看这个类的37行