<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="java.util.*"%>
<%@ page import="javax.sql.*,java.util.*,javax.naming.*,java.sql.*" %>
<%@ page import="java.text.NumberFormat"%>
<%@ page import="java.util.Hashtable" %>
<%@ page import="java.util.Enumeration" %>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.Calendar" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="oracle.jdbc.*" %>
<%@ page import="com.Asianettp.michelle.common.*"%>
<%@ page import="com.Asianettp.michelle.p1000.fax.faxlist"%><%
request.setCharacterEncoding("GB2312");
String complain_bill_id=request.getParameter("complain_bill_id");
String complain_bill_status=request.getParameter("complain_bill_status");
String user_id = CommonFunc.null2Str((String)session.getAttribute("user_id"));
String status_date=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
String addition=request.getParameter("addition");
int i=0;
PreparedStatement ps=null;
 String sql="";
 Connection con=null;
 ResultSet rs=null ;
 
 try { 
 
 
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
con=DriverManager.getConnection("jdbc:oracle:thin:@10.7.234.222:1521:qltydb","shdx_data","shdx_hy");
  sql="INSERT INTO ALARM_STATUS VALUES ('"+complain_bill_id+"','"+complain_bill_status+"',TO_DATE('"+status_date+"','YYYY-MM-DD'),'"+user_id+"','"+addition+"')  ";out.println(sql);
ps = con.prepareStatement(sql);
rs= ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int colcount=rsmd.getColumnCount(); 
 } catch (SQLException e) 
    {  
    out.println(e);
           }
      finally { 
          if (ps != null)  {
            try {
                ps.close();
                ps = null;
            }  catch (Throwable ex) {
               out.println("请与运维联系");
            }   
            }
          if (con != null)   {
                try  {
                if (!con.isClosed())
                    con.close();
                con = null;
             }   catch (Throwable ex1) {
                out.println("Error - can't close connect object");
             }
          }  
        } %>
测试的结果是
INSERT INTO ALARM_STATUS VALUES ('2-96495837098','待处理',TO_DATE('2015-08-24','YYYY-MM-DD'),'admin','无') 
java.sql.SQLException: ORA-00900: 无效 SQL 语句 数据库里的表能够插入新增的行
请问怎么能清除报错 =w= 谢谢!

解决方案 »

  1.   

    null 的写法有问题   if (ps != null) 应该是(ps is not  null  )等于null 应该是is null
      

  2.   

    sql="INSERT INTO ALARM_STATUS VALUES ('"+complain_bill_id+"','"+complain_bill_status+"',TO_DATE('"+status_date+"','YYYY-MM-DD'),'"+user_id+"','"+addition+"')  ";'YYYY-MM-DD' 改成''YYYY-MM-DD''(两个单引号)
      

  3.   


    我用的是plsql developer
    我试了一下你的建议,反而报错了 0.0
      

  4.   

    大哥们,这是java代码,拼接sql然后调用,这咋还有回复 is not null的看你这个sql,没啥问题,字符串拼接的也没啥问题,把你那个insert的语句直接放到plsql里面看看报不报错,另外,你是用eclipse还myeclipse编译的?
      

  5.   


    直接放进去没报错!能成功插入 = =  编译的话应该是用Dreamweaver?
      

  6.   


    直接放进去没报错!能成功插入 = =  编译的话应该是用Dreamweaver?
    这。。各种jsp里面嵌套的java代码,可以用Dreamweaver这玩意直接跑了?我记得Dreamweaver这玩意好像只能跑html的呢,太久没用过了,如果sql能在plsql里面正确执行,就得看你jdbc的设置了,驱动之类的东西,新搭建的环境还是老环境,老环境找找配置文件,估计你是少什么东西了,新环境的话就得一点点试了,看看到底哪的问题。
      

  7.   


    直接放进去没报错!能成功插入 = =  编译的话应该是用Dreamweaver?
    这。。各种jsp里面嵌套的java代码,可以用Dreamweaver这玩意直接跑了?我记得Dreamweaver这玩意好像只能跑html的呢,太久没用过了,如果sql能在plsql里面正确执行,就得看你jdbc的设置了,驱动之类的东西,新搭建的环境还是老环境,老环境找找配置文件,估计你是少什么东西了,新环境的话就得一点点试了,看看到底哪的问题。
    那我好像没有编译工具,直接看网页结果的。
      

  8.   


    直接放进去没报错!能成功插入 = =  编译的话应该是用Dreamweaver?
    这。。各种jsp里面嵌套的java代码,可以用Dreamweaver这玩意直接跑了?我记得Dreamweaver这玩意好像只能跑html的呢,太久没用过了,如果sql能在plsql里面正确执行,就得看你jdbc的设置了,驱动之类的东西,新搭建的环境还是老环境,老环境找找配置文件,估计你是少什么东西了,新环境的话就得一点点试了,看看到底哪的问题。
    那我好像没有编译工具,直接看网页结果的。大哥,你这连编译环境都没有,谁能知道为啥报错啊,最基本你得有源代码吧,要不然怎么查问题啊,你是连代码都没有吗?