首页 > 解决方案 > 使用 Java 从 oracle 获取行 id

问题描述

我需要使用 Java 从 Oracle 数据库中获取 rowid。我使用了下面的代码。

Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next()) {
            RowId str=rs.getRowId(1);        
            System.out.println(str);
        }

我得到的结果是

oracle.sql.ROWID@2ce6c6ec
oracle.sql.ROWID@1bae316d

但我需要十六进制值,例如

AAAdItACwAABXcIAAA

有人可以指导我吗?

谢谢

标签: javaoraclejdbcoracle11goracle10g

解决方案


您可以使用https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html#printHexBinary%28byte%5B%5D%29

这将直接为您提供十六进制值

String hexValue = DatatypeConverter.printHexBinary(resultSet.getRowId(10).getBytes())

这是完整的代码

Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next()) 
{
    String str= DatatypeConverter.printHexBinary(resultSet.getRowId(1).getBytes())       
    System.out.println(str);
}

推荐阅读