一个jsp中有这样的sql
//打开数据库,读出日期为recdate,用户名为username的记录
String sql1="select * from scott.workrep where username='"+username+"' and recdate='"+recdate+"'"; 
rs=stmt.executeQuery(sql1);------------------------------
运行时就出现了----“ORA-01843: 无效的月份”-----------------------------oracle表中的recdate列的有一行的记录是“17-三月 -2004 12:00:00 AM”
 
------------------------------------
请求如下
http://127.0.0.1:8081/gov/displayworkrec.jsp?username=111&recdate=17-3月-2004&year=2004&month=3&date=17

解决方案 »

  1.   

    取得的时间17-3月-2004  先FORMAT
      

  2.   

    我在jsp里面这么写,有什么不对?String sql1="select * from scott.workrep where  username='"+username+"' and recdate='"+to_date(recdate,"dd-mm-yyyy")+"'"; 
    rs=stmt.executeQuery(sql1); 
    -----------------------------tomcat出现这个错误
    exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 68 in the jsp file: /displayworkrec.jsp
    Generated servlet error:
    D:\Tomcat 5.0\work\Catalina\localhost\gov\org\apache\jsp\displayworkrec_jsp.java:155: cannot resolve symbol
    symbol  : method to_date (java.lang.String,java.lang.String)
    location: class org.apache.jsp.displayworkrec_jsp
    String sql1="select * from scott.workrep where  username='"+username+"' and recdate='"+to_date(recdate,"dd-mm-yyyy")+"'"; 
                                                                                           ^
    An error occurred at line: 68 in the jsp file: /displayworkrec.jsp
    Generated servlet error:
    Note: D:\Tomcat 5.0\work\Catalina\localhost\gov\org\apache\jsp\displayworkrec_jsp.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.
    1 error
      

  3.   

    你把"to_date"写到字符串外面去了,而它本来应该是SQL的一部分。
      

  4.   

    String sql1="select * from scott.workrep where  username='"+username+"' and recdate=to_date('"+recdate+"','dd-mm-yyyy')";
      

  5.   

    coolarmy(bb考拉猪) 
    我象你那么改了,出现:javax.servlet.ServletException: ORA-01841: (全)年度值必须介于 -4713 和 +9999 之间,且不为 0