代码:
OracleCachedRowSet rowSet = new OracleCachedRowSet();
ResultObject obj = new ResultObject(0,null);
PreparedStatement pstat = connection.prepareStatement(strQry);
rowSet.populate(pstat.executeQuery());
rowSet.beforeFirst();
while(rowSet.next()){
System.out.println("Conference name "+rowSet.getString(1));
System.out.println("StartTime "+rowSet.getTimestamp(5)) ;
}
当我运行上面的代码时,我得到了如下错误:
java.sql.SQLException: Invalid column type
at oracle.jdbc.rowset.OracleCachedRowSet.getTimestamp(OracleCachedRowSet.java:4399)
at test.Test.main(Test.java:102)
如果我使用ResultSet
代替OracleCachedRowSet
PreparedStatement pstat = connection.prepareStatement(strQry);
ResultSet rset = pstat.executeQuery();
while(rset.next()){
System.out.println("Conference name "+rset.getString(1));
System.out.println("StartTime "+rset.getTimestamp(5)) ;
}
有getTimestamp()
使用OracleCachedRowSet
吗?
答案 0 :(得分:0)
我们可以通过以下方式实现定义的事物:
java.util.Date date = new java.util.Date(((oracle.sql.TIMESTAMP)rSet.getObject(5)).timestampValue().getTime())
答案 1 :(得分:0)
我用过这个:
Object timeStampObj = result.getObject(2);
if (timeStampObj instanceof oracle.sql.TIMESTAMP){
oracle.sql.TIMESTAMP oraTimeStamp = (oracle.sql.TIMESTAMP)timeStampObj;
report.setLastRefresh(new Timestamp(oraTimeStamp.longValue()));
}
此结果是OracleCachedRowSet的一个实例,报表实例的setLastRefresh采用Timestamp。我之前的代码是:
report.setLastRefresh(result.getTimestamp(2));
以上行在Tomcat中有效,但WebSphere没有抛出“无效列类型”异常。