读书人

oracle 中date门类数据的处理

发布时间: 2012-08-02 11:35:26 作者: rapoo

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);

红色部分是由问题的,应该如楼上所说那样。

读书人网 >J2EE开发

热点推荐