java - 使用 Oracle CachedRowSet 获取时间戳

标签 java oracle

代码:

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

有什么方法可以使用 OracleCachedRowSet getTimestamp() 吗?

最佳答案

我们可以通过以下方式实现定义的事物:

java.util.Date date = new java.util.Date(((oracle.sql.TIMESTAMP)rSet.getObject(5)).timestampValue().getTime())

关于java - 使用 Oracle CachedRowSet 获取时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12932832/

相关文章:

oracle - "ORA-14450: attempt to access a transactional temp table already in use"在复合触发器中

c# - Oracle ManagedDataAccess.EntityFramework Database.SqlQuery 按位置绑定(bind)参数?

c# - 如何在 C# 中获取 PL-SQL block 返回的 dbms.output 值

java - quartz : Multiple Jobs that share a resource

java - 如何提高需要加载非常大文件的单元测试的性能

java - Flink State过期时触发

java - Apache maven-assembly-plugin 或 maven-dependency-plugin 在运行时需要外部 jar

sql - 如何自动将数据从SQL Server 推送到Oracle?

java - java中类图的继承关系?

sql - 使用复合键的WHERE_IN查询?