当前位置: 代码迷 >> J2EE >> oracle 中date门类数据的处理
  详细解决方案

oracle 中date门类数据的处理

热度:69   发布时间:2016-04-22 01:09:41.0
oracle 中date类型数据的处理
在目前开发的程序中 有如下的代码。
Java code
 public void verifyEnquiry(String enquiryNo, String userCode, String verifyDate)        throws Exception    {        StringBuffer buffer = new StringBuffer(100);        buffer.append(" Update FeoEnquiry Set VerifyFlag = '1',VerifierCode = ?,");        buffer.append(" VerifyDate = ? where  EnquiryNo = ? ");        logger.debug(buffer.toString());        dbManager.prepareStatement(buffer.toString());        dbManager.setString(1, userCode);        dbManager.setString(2, verifyDate);        dbManager.setString(3, enquiryNo);        dbManager.executePreparedQuery();        logger.info("DBFeoEnquiry.verifyEnquiry() success!");    }

在debug时 传入三个参数
enquiryNo:QO152012990100003
operatorCode:99010002
verifyDate:2012-06-28


这个段程序在我本机(windows)的weblogic上 运行的时候 oracle会抛出异常信息:
JScript code
java.sql.SQLDataException: ORA-01861: literal does not match format string

但发布在远程的websphere上时 就没问题 

抛出的异常应该是 verifyDate 这个参数没有用to_date() 或者 date 导致的。
但不知道为什么本机不行,在服务器上就可以。


求解?

------解决方案--------------------
应该是setDate把,dbManager.setDate(2, verifyDate),然后要把verifyDate转换为java.util.Date()类型。
------解决方案--------------------
dbManager.setString(1, userCode);
dbManager.setString(2, verifyDate);
dbManager.setString(3, enquiryNo);

红色部分是由问题的,应该如楼上所说那样。
  相关解决方案